[tox] envlist = linters,pylint minversion = 2.3 skipsdist = True sitepackages=False [testenv] install_command = pip install -U {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 allowlist_externals = bash [testenv:bashate] # Treat all E* codes as Errors rather than warnings using: -e 'E*' commands = bash -c "find {toxinidir} \ -not \( -type d -name .?\* -prune \) \ -type f \ -not -name \*~ \ -not -name \*.md \ -name \*.sh \ -print0 | xargs -r -n 1 -0 bashate -v \ -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 # W503 line break before binary operator # W504 line break after binary operator # W605 invalid escape sequence '\d' # E117 over-indented # E265 block comment should start with '# ' # E266 too many leading '#' for block comment # E305 expected 2 blank lines after class or function definition, found 1 # E402 module level import not at top of file # E722 do not use bare 'except' # E741 ambiguous variable name 'I' # F632 use ==/!= to compare constant literals (str, bytes, int, float, tuple) # F821 undefined name 'dpdk' (this is a flake8 bug) # 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) ignore=F401,F632,F821,F841,W291,W503,W504,W605,E117,E265,E266,E305,E402,E722,E741, H101,H104,H201,H238,H306 max-line-length=110 [testenv:flake8] commands = flake8 [testenv:linters] commands = {[testenv:bashate]commands} {[testenv:flake8]commands} [testenv:pylint] basepython = python3 description = Dummy environment to allow pylint to be run in subdir tox # deps = -r{toxinidir}/test-requirements.txt [bandit] # The following bandit tests are being skipped: # B602: Test for use of popen with shell equals true # # Note: 'skips' entry cannot be split across multiple lines # skips = B602 exclude = tests [testenv:bandit] basepython = python3 description = Bandit code scan for *.py files under config folder deps = -r{toxinidir}/test-requirements.txt commands = bandit --ini tox.ini -n 5 -r {toxinidir}/ -x '**/.tox/**,**/.eggs/**' -lll