From 75641f5fc7ee7be9e9887d581050e00aef3e5208 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Sun, 28 May 2017 02:44:53 +0200 Subject: [PATCH] Set up static code analysis, fix style issues reported by flake8 --- .travis.yaml | 11 +++++++++ pmb/chroot/apk_static.py | 2 -- pmb/helpers/file.py | 2 ++ test/static_code_analysis.sh | 45 ++++++++++++++++++++++++++++++++++++ test/test_apk_static.py | 1 - test/test_aportgen.py | 1 - test/test_build.py | 1 - test/test_keys.py | 1 - test/test_shell_escape.py | 1 - test/test_version.py | 1 - 10 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 .travis.yaml create mode 100755 test/static_code_analysis.sh diff --git a/.travis.yaml b/.travis.yaml new file mode 100644 index 00000000..dcc806b1 --- /dev/null +++ b/.travis.yaml @@ -0,0 +1,11 @@ +language: "python" +python: "3.6" +addons: + apt: + sources: + - debian-sid + packages: + - shellcheck +install: "pip install flake8" +script: "test/static_code_analysis.sh" + diff --git a/pmb/chroot/apk_static.py b/pmb/chroot/apk_static.py index d9b052e7..9fc99a0e 100644 --- a/pmb/chroot/apk_static.py +++ b/pmb/chroot/apk_static.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -import urllib.request import os import logging import shutil @@ -158,7 +157,6 @@ def init(args): """ Download, verify, extract $WORK/apk.static. """ - base_url = args.mirror_alpine + "edge/main/" + args.arch_native apkindex = download(args, "APKINDEX.tar.gz") index_data = pmb.parse.apkindex.read(args, "apk-tools-static", apkindex) version = index_data["version"] diff --git a/pmb/helpers/file.py b/pmb/helpers/file.py index e49ab0e9..5f1c8221 100644 --- a/pmb/helpers/file.py +++ b/pmb/helpers/file.py @@ -16,6 +16,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ + + def replace(path, old, new): text = "" with open(path, 'r') as handle: diff --git a/test/static_code_analysis.sh b/test/static_code_analysis.sh new file mode 100755 index 00000000..dbc42c04 --- /dev/null +++ b/test/static_code_analysis.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# Copyright 2017 Oliver Smith +# +# This file is part of pmbootstrap. +# +# pmbootstrap is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pmbootstrap is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pmbootstrap. If not, see . + +set -e +DIR="$(cd "$(dirname "$0")" && pwd -P)" +cd "$DIR"/.. + +# Shell: shellcheck +sh_files="test/static_code_analysis.sh" +echo "Test $sh_files with shellcheck..." +for file in ${sh_files}; do + shellcheck "${file}" +done + +# Python: flake8 +# E501: max line length +# F401: imported, but not used, does not make sense in __init__ files +# E402: module import not on top of file, not possible for testcases +echo "Test *.py files with flake8..." +echo "NOTE: Run 'autopep8 -ria $PWD' to fix code style issues" +py_files="$(find . -name '*.py')" +_ignores="E501,E402" +# shellcheck disable=SC2086 +flake8 --exclude=__init__.py --ignore "$_ignores" $py_files +# shellcheck disable=SC2086 +flake8 --filename=__init__.py --ignore "F401,$_ignores" $py_files + +# Done +echo "Success!" + diff --git a/test/test_apk_static.py b/test/test_apk_static.py index a3ea8300..7abc52f3 100644 --- a/test/test_apk_static.py +++ b/test/test_apk_static.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import tarfile diff --git a/test/test_aportgen.py b/test/test_aportgen.py index c702f840..545b91aa 100644 --- a/test/test_aportgen.py +++ b/test/test_aportgen.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import pytest diff --git a/test/test_build.py b/test/test_build.py index 3a22c7d8..f6a111a1 100644 --- a/test/test_build.py +++ b/test/test_build.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import pytest diff --git a/test/test_keys.py b/test/test_keys.py index 6d8a3525..d3075314 100644 --- a/test/test_keys.py +++ b/test/test_keys.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import pytest diff --git a/test/test_shell_escape.py b/test/test_shell_escape.py index aa72c257..5c5a454a 100644 --- a/test/test_shell_escape.py +++ b/test/test_shell_escape.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import pytest diff --git a/test/test_version.py b/test/test_version.py index c9489058..068dec61 100644 --- a/test/test_version.py +++ b/test/test_version.py @@ -16,7 +16,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pmbootstrap. If not, see . """ -#!/usr/bin/env python3 import os import sys import pytest