[tox] minversion = 3.1.1 envlist = py3,pep8,releasenotes ignore_basepython_conflict = True [testenv] usedevelop = True setenv = VIRTUAL_ENV={envdir} OS_STDOUT_NOCAPTURE=False OS_STDERR_NOCAPTURE=False deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.2} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt commands = stestr run {posargs} allowlist_externals = bash basepython = python3 [testenv:pep8] commands = flake8 # Run security linter # B110: except: pass # B410: importing etree bandit -r keystoneauth1 -x tests -s B110,B410 [testenv:bandit] # NOTE(browne): This is required for the integration test job of the bandit # project. Please do not remove. commands = bandit -r keystoneauth1 -x tests -s B110,B410 [testenv:venv] commands = {posargs} [testenv:cover] setenv = {[testenv]setenv} PYTHON=coverage run --source keystoneauth1 --parallel-mode commands = stestr run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml [testenv:debug] commands = oslo_debug_helper -t keystoneauth1/tests {posargs} [flake8] # D100: Missing docstring in public module # D101: Missing docstring in public class # D102: Missing docstring in public method # D103: Missing docstring in public function # D104: Missing docstring in public package # D107: Missing docstring in __init__ # D203: 1 blank line required before class docstring (deprecated in pep257) # D401: First line should be in imperative mood; try rephrasing # W503 line break before binary operator # W504 line break after binary operator ignore = D100,D101,D102,D103,D104,D107,D203,D401,W503,W504 # H106: Don’t put vim configuration in source files # H203: Use assertIs(Not)None to check for None enable-extensions=H106,H203 show-source = True exclude = .venv,.tox,dist,doc,*egg,build import-order-style = pep8 application-import-names = keystoneauth1 [testenv:docs] setenv = {[testenv]setenv} SPHINX_APIDOC_OPTIONS=noindex,members,undoc-members,show-inheritance deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.2} -r{toxinidir}/doc/requirements.txt commands = bash -c "rm -rf doc/build" bash -c "rm -rf doc/source/api" sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html [testenv:pdf-docs] setenv = {[testenv]setenv} SPHINX_APIDOC_OPTIONS=noindex,members,undoc-members,show-inheritance envdir = {toxworkdir}/docs deps = {[testenv:docs]deps} allowlist_externals = make rm commands = rm -rf doc/build/pdf sphinx-build -W -b latex doc/source doc/build/pdf make -C doc/build/pdf [testenv:releasenotes] deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.2} -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [flake8:local-plugins] extension = K333 = checks:check_oslo_namespace_imports paths = ./keystoneauth1/hacking