fault/fm-rest-api/fm/tox.ini

90 lines
2.7 KiB
INI

[tox]
envlist = flake8,py39,bandit,pylint
minversion = 2.3
skipsdist = True
stxdir = {toxinidir}/../../../
[testenv]
basepython = python3
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps = -chttps://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt
-r{toxinidir}/test-requirements.txt
-e{[tox]stxdir}/config/tsconfig/tsconfig
-e{[tox]stxdir}/config/sysinv/cgts-client/cgts-client
-e{[tox]stxdir}/fault/fm-api/source
-e{[tox]stxdir}/fault/fm-rest-api/fm
[testenv:venv]
commands = {posargs}
[bandit]
# B101 assert_used
# B104 hardcoded_bind_all_interfaces
# B314 blacklist xml.etree
skips = B101,B104,B314
exclude = tests
[testenv:bandit]
commands = bandit --ini tox.ini -n 5 -r fm
[flake8]
# WE WANT TO ENABLE H106: Don't put vim configuration in source files (off by default).
# WE WANT TO ENABLE H904 Delay string interpolations at logging calls (off by default)
# H203: Use assertIs(Not)None to check for None (off by default).
enable-extensions = H203
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,release-tag-*
# the following are ignored. These may be cleaned up in a future commit
# H104: File contains nothing but comments
# H105: Don't use author tags
# H301: one import per line
# H306: imports not in alphabetical order
# H401: docstring should not start with a space
# H404: multi line docstring should start without a leading new line
# H405: multi line docstring summary not separated with an empty line
# W504: line break after binary operator
# W605 invalid escape sequence
ignore = H104,H105,H301,H306,H401,H404,H405,W504,W605
# auth_token.py is 99 chars wide. The max length can be reduced as the files are updated
max-line-length = 99
show-source = True
[testenv:flake8]
commands = flake8 {posargs}
[testenv:pep8]
commands = flake8 {posargs}
[testenv:py39]
basepython = python3.9
commands =
stestr run {posargs}
stestr slowest
[testenv:cover]
setenv = {[testenv]setenv}
PYTHON=coverage run --parallel-mode
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:pylint]
commands = pylint fm --rcfile=./pylint.rc
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
skip_install = True
deps = bindep
commands = bindep test