pegleg/tox.ini

142 lines
3.2 KiB
INI

[tox]
envlist = py38,pep8,docs,cover
minversion = 2.38.0
skipsdist = True
[testenv]
usedevelop = True
setenv =
VIRTUAL_ENV={envdir}
LANGUAGE=en_US
LC_ALL=en_US.utf-8
PIPENV_VERBOSITY=-1
PIPENV_IGNORE_PIPFILE=1
deps=
-r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt
passenv =
http_proxy
https_proxy
HTTP_PROXY
HTTPS_PROXY
no_proxy
NO_PROXY
PBR_VERSION
allowlist_externals =
bash
find
commands =
find . -type f -name "*.pyc" -delete
bash -c "{toxinidir}/tools/install-cfssl.sh"
bash -c "{toxinidir}/tools/gate/run-unit-tests.sh '{posargs}'"
[testenv:py38]
allowlist_externals =
bash
find
commands =
{[testenv]commands}
[testenv:fmt]
basepython = python3
commands =
yapf -ir {toxinidir}/pegleg {toxinidir}/tests
allowlist_externals =
yapf
[testenv:pep8]
basepython = python3
command =
bash -c "{toxinidir}/tools/gate/whitespace-linter.sh"
bandit --skip B105 -r pegleg -n 5
flake8 {toxinidir}/pegleg
yapf -dr {toxinidir}/pegleg {toxinidir}/tests
allowlist_externals =
bash
bandit
flake8
yapf
find
[testenv:docs]
basepython = python3
deps=
-r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
bash -c "{toxinidir}/tools/gate/build-docs.sh"
allowlist_externals =
bash
[testenv:bandit]
basepython = python3
commands = bandit --skip B105 -r pegleg -n 5
[testenv:safety]
basepython = python3
deps =
safety
commands =
safety check -r {toxinidir}/requirements-frozen.txt -r {toxinidir}/doc/requirements.txt --full-report
[testenv:cover]
basepython = python3
commands =
find . -type f -name "*.pyc" -delete
bash -c "{toxinidir}/tools/install-cfssl.sh"
bash -c "{toxinidir}/tools/gate/run-cover-tests.sh '{posargs}'"
allowlist_externals =
bash
find
[testenv:freeze]
recreate = True
allowlist_externals=
rm
sh
deps=
-r{toxinidir}/requirements-direct.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt
commands=
rm -f {toxinidir}/requirements-frozen.txt
sh -c "pip freeze --all | grep -vE 'pegleg|pyinotify|pkg-resources' > requirements-frozen.txt"
[testenv:releasenotes]
basepython = python3
deps=
-r{toxinidir}/test-requirements.txt
-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
allowlist_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
# [W503] line break before binary operator
ignore = H403,H404,H405,W503
exclude=.venv,.git,.tox,build,dist,*lib/python*,*egg,tools,*.ini,*.po,*.pot
max-complexity = 24
application-import-names = pegleg
application-package-names = deckhand,promenade,shipyard
import-order-style = pep8