c213a3832d
Improving the code quality of utilities by adding the flake8 check on zuul and adding the flake8-import-order plugin to standardize imports. Also, defaults testenv to python3.9 configuration that should be used for now on with the debian migration. Story: 2010100 Task: 45671 Signed-off-by: Thiago Brito <thiago.brito@windriver.com> Change-Id: I007302bdfb873aed4ebb7b9023db2461282b9fba
112 lines
4.0 KiB
INI
112 lines
4.0 KiB
INI
[tox]
|
|
envlist = linters,pylint,pep8
|
|
minversion = 2.3
|
|
skipsdist = True
|
|
toxworkdir = /tmp/{env:USER}_python_utilities_tox
|
|
stxdir = {toxinidir}/..
|
|
|
|
[testenv]
|
|
sitepackages = False
|
|
basepython = python3.9
|
|
install_command = pip install \
|
|
-v -v -v \
|
|
-U \
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
|
|
{opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_DEBUG=1
|
|
OS_LOG_CAPTURE=1
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
whitelist_externals =
|
|
bash
|
|
|
|
[testenv:bashate]
|
|
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
|
|
# The following codes are being suppressed:
|
|
# E006 line too long
|
|
# E010 The "do" should be on same line as for
|
|
# E041 Arithmetic expansion using $[ is deprecated for $((
|
|
# E042 local declaration hides errors
|
|
# E043 Arithmetic compound has inconsistent return semantics
|
|
# E044 Use [[ for non-POSIX comparisions
|
|
commands =
|
|
bash -c "find {toxinidir} \
|
|
-not \( -type d -name .?\* -prune \) \
|
|
-type f \
|
|
-not -name \*~ \
|
|
-not -name \*.md \
|
|
-not -name before_bootstrap_workarounds.sh \
|
|
-not -name after_bootstrap_workarounds.sh \
|
|
-name \*.sh \
|
|
-print0 | xargs -n 1 -0 bashate -v \
|
|
-i E006,E010,E041,E042,E043,E044 \
|
|
-e 'E*'"
|
|
|
|
[flake8]
|
|
# Note: hacking pulls in flake8 2.5.5 which can not parse an ignore list spanning multiple lines
|
|
# F errors are high priority to fix. W are warnings. E series are pep8, H series are hacking
|
|
# F401 'FOO' imported but unused
|
|
# F841 local variable 'FOO' is assigned to but never used
|
|
# W291 trailing whitespace
|
|
# W391 blank line at end of file
|
|
# W503 line break before binary operator
|
|
# W504 line break after binary operator
|
|
# W605 invalid escape sequence '\s'
|
|
# E128 continuation line under-indented for visual indent
|
|
# E221 multiple spaces before operator
|
|
# E226 missing whitespace around arithmetic operator
|
|
# E227 missing whitespace around bitwise or shift operator
|
|
# E241 multiple spaces after ','
|
|
# E265 block comment should start with '# '
|
|
# E302 expected 2 blank lines, found 1
|
|
# E305 expected 2 blank lines after class or function definition, found 1
|
|
# E501 line too long
|
|
# E502 the backslash is redundant between brackets
|
|
# E702 multiple statements on one line (semicolon)
|
|
# E722 do not use bare 'except'
|
|
# H101 is TODO
|
|
# H104 File contains nothing but comments
|
|
# H201 no 'except:' at least use 'except Exception:'
|
|
# H238 old style class declaration, use new style (inherit from `object`)
|
|
# H306 imports not in alphabetical order (sys, re)
|
|
# H401 docstring should not start with a space
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
ignore = F401,F841,W291,W391,W503,W504,W605,E128,E221,E226,E227,E241,E265,E302,E305,E501,E502,E702,E722,H101,H104,H201,H238,H306,H401,H405
|
|
# max-line-length is not referenced if E501 is suppressed
|
|
max-line-length=80
|
|
import-order-style = google
|
|
application-import-names = cephclient,ceph_manager,logmgmt,pci_irq_affinity,platform_util
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8
|
|
|
|
[testenv:pylint]
|
|
deps =
|
|
{[testenv]deps}
|
|
-e{[tox]stxdir}/config/sysinv/sysinv/sysinv
|
|
-e{[tox]stxdir}/config/tsconfig/tsconfig
|
|
-e{[tox]stxdir}/fault/fm-api/source
|
|
|
|
commands = pylint {posargs} \
|
|
ceph/ceph-manager/ceph-manager/ceph_manager \
|
|
ceph/python-cephclient/python-cephclient/cephclient \
|
|
utilities/logmgmt/logmgmt/logmgmt/ \
|
|
utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity \
|
|
utilities/platform-util/platform-util/platform_util \
|
|
--rcfile=./pylint.rc
|
|
|
|
|
|
[testenv:linters]
|
|
commands =
|
|
{[testenv:bashate]commands}
|
|
|
|
[testenv:bandit]
|
|
basepython = python3
|
|
description = Dummy environment to allow bandit to be run in subdir tox
|