[tox] envlist = py36,pep8,docs,cover minversion = 2.3.1 skipsdist = True [testenv] usedevelop = True setenv = VIRTUAL_ENV={envdir} LANGUAGE=en_US LC_ALL=en_US.utf-8 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt passenv = http_proxy https_proxy HTTP_PROXY HTTPS_PROXY no_proxy NO_PROXY PBR_VERSION whitelist_externals = find commands = find . -type f -name "*.pyc" -delete {toxinidir}/tools/gate/run-unit-tests.sh '{posargs}' [testenv:fmt] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = yapf --style=pep8 -ir {toxinidir}/pegleg {toxinidir}/tests [testenv:pep8] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = bash -c "{toxinidir}/tools/gate/whitespace-linter.sh" bandit -r pegleg -n 5 flake8 {toxinidir}/pegleg whitelist_externals = bash [testenv:docs] basepython = python3 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = bash -c "{toxinidir}/tools/gate/build-docs.sh" whitelist_externals = bash [testenv:bandit] basepython = python3 commands = bandit -r pegleg -n 5 [testenv:cover] basepython = python3 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = {toxinidir}/tools/install-cfssl.sh bash -c 'PATH=$PATH:~/.local/bin; pytest --cov=pegleg --cov-report \ html:cover --cov-report xml:cover/coverage.xml --cov-report term \ --cov-fail-under 85 tests/' whitelist_externals = bash [testenv:releasenotes] basepython = python3 deps = -r{toxinidir}/doc/requirements.txt commands = rm -rf releasenotes/build sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html whitelist_externals = rm [testenv:venv] commands = {posargs} [flake8] filename = *.py show-source = true # [H106] Don't put vim configuration in source files. # [H201] No 'except:' at least use 'except Exception:' # [H904] Delay string interpolations at logging calls. enable-extensions = H106,H201,H904 # TODO(lamt) Clean up these docstring violations if possible # [H403] multi line docstrings should end on a new line # [H404] multi line docstring should start without a leading new line # [H405] multi line docstring summary not separated with an empty line ignore = H403,H404,H405 exclude=.venv,.git,.tox,build,dist,*lib/python*,*egg,tools,*.ini,*.po,*.pot max-complexity = 24