tox: Migrate to tox v4

The current v3 configuration worked just fine, but it's not longer
possible to share envdirs between testenvs and tox 4 only supports
Python 3, so the two settings related to these were useless. They are
removed and we also clean up the file while we're at it.

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: I6eac3be7f37887d743d54171021521d4b1c70482
This commit is contained in:
Stephen Finucane 2024-06-14 11:47:52 +01:00
parent d1b78d9d33
commit 0eb7b6ee73

93
tox.ini

@ -1,29 +1,28 @@
[tox]
minversion = 3.1.1
minversion = 4.3.0
envlist = py3,pep8,releasenotes
ignore_basepython_conflict = True
[testenv]
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
OS_STDOUT_NOCAPTURE=False
OS_STDERR_NOCAPTURE=False
setenv =
OS_STDOUT_NOCAPTURE=False
OS_STDERR_NOCAPTURE=False
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = stestr run {posargs}
allowlist_externals =
bash
basepython = python3
bash
commands =
stestr run {posargs}
[testenv:pep8]
commands =
flake8
# Run security linter
# B110: except: pass
# B410: importing etree
bandit -r keystoneauth1 -x tests -s B110,B410
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
@ -44,7 +43,41 @@ commands =
coverage xml -o cover/coverage.xml
[testenv:debug]
commands = oslo_debug_helper -t keystoneauth1/tests {posargs}
commands =
oslo_debug_helper -t keystoneauth1/tests {posargs}
[testenv:docs]
setenv =
{[testenv]setenv}
SPHINX_APIDOC_OPTIONS=noindex,members,undoc-members,show-inheritance
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-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
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://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]
# D100: Missing docstring in public module
@ -66,38 +99,6 @@ 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://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-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://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-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