Files
python-openstackclient/tox.ini
Koya Watanabe f2f0f92d41 Remove functional testenv for py38/py39
Python 3.8 and 3.9 are no longer supported.
Refer to pyproject.toml for the current supported versions.

Change-Id: Ie7f917c26299509050294037cc27e1fd9c20e78b
Signed-off-by: Koya Watanabe <koywatan@lycorp.co.jp>
2025-12-12 14:49:33 +00:00

130 lines
3.8 KiB
INI

[tox]
minversion = 4.3.0
envlist = py3,pep8
[testenv]
description =
Run unit tests.
usedevelop = true
setenv =
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
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:pep8]
description =
Run style checks.
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:bandit]
description =
Run bandit security checks.
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure bandit
[testenv:unit-tips]
commands =
python -m pip install -q -U -e {toxinidir}/../cliff#egg=cliff
python -m pip install -q -U -e {toxinidir}/../keystoneauth#egg=keystoneauth
python -m pip install -q -U -e {toxinidir}/../osc-lib#egg=osc_lib
python -m pip install -q -U -e {toxinidir}/../openstacksdk#egg=openstacksdk
python -m pip freeze
stestr run {posargs}
[testenv:functional{,-tips,-py310,-py311,-py312,-py313,-py314}]
description =
Run functional tests.
setenv =
OS_TEST_PATH=./openstackclient/tests/functional
passenv =
OS_*
commands =
tips: python -m pip install -q -U -e {toxinidir}/../cliff#egg=cliff
tips: python -m pip install -q -U -e {toxinidir}/../keystoneauth#egg=keystoneauth1
tips: python -m pip install -q -U -e {toxinidir}/../osc-lib#egg=osc_lib
tips: python -m pip install -q -U -e {toxinidir}/../openstacksdk#egg=openstacksdk
tips: python -m pip freeze
{[testenv]commands}
[testenv:venv]
description =
Run specified command in a virtual environment with all dependencies installed.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
{posargs}
[testenv:cover]
description =
Run unit tests and generate coverage report.
setenv =
{[testenv]setenv}
PYTHON=coverage run --source openstackclient --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:debug]
description =
Run specified tests through oslo_debug_helper, which allows use of pdb.
passenv =
OS_*
commands =
oslo_debug_helper -t openstackclient/tests {posargs}
[testenv:docs]
description =
Build documentation in HTML format.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
sphinx-build -a -E -W -d doc/build/doctrees -b man doc/source doc/build/man
# Validate redirects (must be done after the docs build
whereto doc/build/html/.htaccess doc/test/redirect-tests.txt
[testenv:releasenotes]
description =
Build release note documentation in HTML format.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]
show-source = true
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,releasenotes
# We only enable the hacking (H) and openstackclient (O) checks
select = H,O
# H301 Black will put commas after imports that can't fit on one line
ignore = H301
import-order-style = pep8
application_import_names = openstackclient
[flake8:local-plugins]
extension =
O400 = checks:assert_no_oslo
O401 = checks:assert_no_duplicated_setup
O402 = checks:assert_use_of_client_aliases
O403 = checks:assert_find_ignore_missing_kwargs
paths = ./hacking