[tox] minversion = 3.18.0 envlist = cover,docs,pep8,py3,pylint,update-states [testenv] setenv = # TODO(stephenfin): Remove once we bump our upper-constraint to SQLAlchemy 2.0 SQLALCHEMY_WARN_20=1 # We need to install a bit more than just `test' because those drivers have # custom tests that we always run deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt commands = stestr run {posargs} [testenv:docs] deps = {[testenv]deps} -r{toxinidir}/doc/requirements.txt commands = sphinx-build -E -W -b html doc/source doc/build/html doc8 doc/source [testenv:functional] commands = find . -type f -name "*.pyc" -delete pifpaf -e TAKSFLOW_TEST run {env:PIFPAF_DAEMON} {env:PIFPAF_OPTS} -- stestr run allowlist_externals = find [testenv:update-states] deps = {[testenv]deps} commands = {toxinidir}/tools/update_states.sh allowlist_externals = {toxinidir}/tools/update_states.sh [testenv:pep8] commands = pre-commit run -a [testenv:pylint] deps = {[testenv]deps} pylint==0.26.0 commands = pylint --rcfile=pylintrc taskflow [testenv:cover] deps = {[testenv]deps} coverage>=3.6 setenv = {[testenv]setenv} PYTHON=coverage run --source taskflow --parallel-mode commands = stestr run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml [testenv:venv] commands = {posargs} [flake8] builtins = _ exclude = .venv,.tox,dist,doc,*egg,.git,build,tools ignore = E305,E402,E721,E731,E741,W503,W504 [hacking] import_exceptions = taskflow.test.mock unittest.mock [doc8] # Settings for doc8: # Ignore doc/source/user/history.rst, it includes generated ChangeLog # file that fails with "D000 Inline emphasis start-string without # end-string." ignore-path = doc/*/target,doc/*/build* [testenv:releasenotes] deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [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, and develop mode disabled # explicitly to avoid unnecessarily installing the checked-out repo too (this # further relies on "tox.skipsdist = True" above). deps = bindep commands = bindep test usedevelop = False