tobiko/tox.ini
Jeremy Stanley 1f7ad83f71 Correct the tox option for skipping sdist generation
The tox option to skip source distribution building is skipsdist,
but this seems to be often misspelled skipdist instead, which gets
silently ignored and so does not take effect. Correct it
everywhere, in hopes that new projects will finally stop copying
this mistake around.

See https://tox.readthedocs.io/en/latest/config.html#conf-skipsdist
and https://github.com/tox-dev/tox/issues/1388 for details.

Change-Id: Ieee8041dd177b28d74a0f175fb6df340d158c3c9
2021-06-30 09:57:17 +00:00

358 lines
9.2 KiB
INI

[tox]
envlist = bindep,linters,py3,lower-constraints,functional
minversion = 3.8.0
# --- unit test environments -------------------------------------------------
[testenv]
usedevelop = True
deps =
{env:TOX_CONSTRAINTS}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
{env:TOX_EXTRA_REQUIREMENTS}
passenv =
JENKINS_*
OS_*
TOBIKO_*
TOX_*
PYTEST_*
setenv =
OS_LOG_CAPTURE = {env:OS_LOG_CAPTURE:true}
OS_STDOUT_CAPTURE = {env:OS_STDOUT_CAPTURE:true}
OS_STDERR_CAPTURE = {env:OS_STDERR_CAPTURE:true}
OS_TEST_PATH = {toxinidir}/tobiko/tests/unit
PS1 = [tobiko@{envname}] {env:PS1:}
PYTEST_TIMEOUT = {env:PYTEST_TIMEOUT:300}
PYTHONWARNINGS = ignore::Warning,{env:PYTHONWARNINGS:}
RUN_TESTS_EXTRA_ARGS = {env:OS_TEST_PATH}
TOBIKO_PREVENT_CREATE = {env:TOBIKO_PREVENT_CREATE:false}
TOX_COVER = {env:TOX_COVER:false}
TOX_COVER_DIR = {env:TOX_COVER_DIR:{toxinidir}/cover}
TOX_NUM_PROCESSES = {env:TOX_NUM_PROCESSES:auto}
TOX_REPORT_NAME = {env:TOX_REPORT_NAME:tobiko_results_{envname}}
TOX_REPORT_DIR = {env:TOX_REPORT_DIR:{envlogdir}}
TOX_CONSTRAINTS = {env:TOX_CONSTRAINTS:-c{env:TOX_CONSTRAINTS_FILE}}
TOX_CONSTRAINTS_FILE = {env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
TOX_EXTRA_REQUIREMENTS = {env:TOX_EXTRA_REQUIREMENTS:-r{toxinidir}/extra-requirements.txt}
VIRTUAL_ENV = {envdir}
commands_pre =
{envpython} {toxinidir}/tools/ensure_podman1.py
commands =
{envpython} {toxinidir}/tools/run_tests.py {posargs:{env:RUN_TESTS_EXTRA_ARGS}}
[testenv:py3]
basepython = {env:TOX_PYTHON:python3}
envdir = {toxworkdir}/py3
[testenv:cover]
basepython = {[testenv:py3]basepython}
envdir = {[testenv:py3]envdir}
setenv =
{[testenv]setenv}
TOX_COVER = true
TOX_COVER_DIR={env:TOX_COVER_DIR:{toxinidir}/cover}
commands =
{[testenv]commands}
coverage html -d "{env:TOX_COVER_DIR}"
coverage xml -o "{env:TOX_COVER_DIR}/coverage.xml"
whitelist_externals =
find
# --- static analisys environments -------------------------------------------
[testenv:pep8]
basepython = python3
deps =
{[testenv]deps}
-r{toxinidir}/linters-requirements.txt
commands =
pre-commit run -a flake8
[testenv:mypy]
basepython = {[testenv:pep8]basepython}
deps = {[testenv:pep8]deps}
envdir = {toxworkdir}/pep8
commands =
pre-commit run -a mypy
[testenv:pylint]
basepython = {[testenv:pep8]basepython}
deps = {[testenv:pep8]deps}
envdir = {toxworkdir}/pep8
commands =
pre-commit run -a pylint
[testenv:ansible-lint]
basepython = {[testenv:pep8]basepython}
deps = {[testenv:pep8]deps}
envdir = {toxworkdir}/pep8
commands =
pre-commit run -a ansible-lint
[testenv:linters]
basepython = {[testenv:pep8]basepython}
whitelist_externals = bash
deps = {[testenv:pep8]deps}
envdir = {toxworkdir}/pep8
commands =
pre-commit --version
pre-commit run -a
pre-commit install --allow-missing-config
[flake8]
# H106: Don't put vim configuration in source files
# H203: Use assertIs(Not)None to check for None
# H204: Use assert(Not)Equal to check for equality
# H205: Use assert(Greater|Less)(Equal) for comparison
# H904: Delay string interpolations at logging calls.
enable-extensions = H106,H203,H204,H205,H904
show-source = true
exclude = ./.*,*lib/python*,build,dist,doc,*egg*,releasenotes,.venv,.tox
application-import-names = tobiko
max-complexity = 10
import-order-style = pep8
# --- integration test environments ------------------------------------------
[integration]
basepython = {[testenv:py3]basepython}
envdir = {[testenv:py3]envdir}
passenv =
{[testenv]passenv}
*_proxy
setenv =
{[testenv]setenv}
PYTEST_TIMEOUT = 1800
[testenv:venv]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
whitelist_externals = *
commands = {posargs:bash}
[testenv:functional]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/functional
[testenv:scenario]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario
[testenv:neutron]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/neutron
[testenv:octavia]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/octavia
[testenv:nova]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/nova
[testenv:faults]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/faults
TOX_NUM_PROCESSES = 1
PYTEST_TIMEOUT = 3600
[testenv:instanceha]
basepython = {[integration]basepython}
envdir = {[integration]envdir}
passenv = {[integration]passenv}
setenv =
{[integration]setenv}
OS_TEST_PATH = {toxinidir}/tobiko/tests/faults/iha
TOX_NUM_PROCESSES = 1
PYTEST_TIMEOUT = 3600
# --- CI workflow test environments -------------------------------------------
[testenv:infrared]
# On RedHat Linux must use the default unversioned python because of dependency on native SELinux
# package available only for /usr/bin/python interpreter
basepython = {env:IR_PYTHON:python3}
usedevelop = false
skipsdist = true
skip_install = true
sitepackages = true
whitelist_externals =
rm
deps = {env:IR_DEPS}
passenv =
{[testenv]passenv}
ANSIBLE_*
IR_*
TERM
setenv =
{[testenv]setenv}
ANSIBLE_CONFIG = {env:ANSIBLE_CONFIG:{toxinidir}/ansible.cfg}
ANSIBLE_INVENTORY = {env:ANSIBLE_INVENTORY:{toxinidir}/ansible_hosts}
IR_DEPS = {env:IR_DEPS:-r{toxinidir}/infrared_plugin/requirements.txt}
IR_HOME = {env:IR_HOME:{envdir}/home/infrared}
IR_TOBIKO_PLUGIN = {env:IR_TOBIKO_PLUGIN:{toxinidir}/infrared_plugin}
IR_WORKSPACE_FILE = {env:IR_WORKSPACE_FILE:{toxinidir}/workspace.tgz}
commands_pre =
{envpython} {toxinidir}/tools/setup_infrared.py
commands =
ir tobiko --tobiko-src-dir '{toxinidir}' \
--collect-dir '{env:TOX_REPORT_DIR}' \
--upper-constraints '{env:TOX_CONSTRAINTS_FILE}' \
{posargs}
# --- documentation environments ----------------------------------------------
[docs]
basepython = {[testenv:py3]basepython}
envdir = {toxworkdir}/docs
deps =
{env:TOX_CONSTRAINTS}
-r{toxinidir}/doc/readthedocs_requirements.txt
commands =
[testenv:linkcheck]
allowlist_externals = sh
basepython = {[docs]basepython}
envdir = {[docs]envdir}
deps = {[docs]deps}
commands =
{[docs]commands}
sh -c 'cd {toxinidir}/doc/source && sphinx-build -W -b linkcheck . ../build/linkcheck'
# 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.
usedevelop = false
skipsdist = true
skip_install = true
[testenv:docs]
allowlist_externals = sh
basepython = {[docs]basepython}
envdir = {[docs]envdir}
deps = {[docs]deps}
changedir = doc/source
commands =
{[testenv:linkcheck]commands}
sphinx-build -W -b html . ../build/html
# 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.
usedevelop = false
skipsdist = true
skip_install = false
[testenv:releasenotes]
basepython = {[docs]basepython}
deps = {[docs]deps}
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
# 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.
usedevelop = false
skipsdist = true
skip_install = true
# --- CI report environments --------------------------------------------------
[testenv:bindep]
basepython = {[testenv:py3]basepython}
# 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.
usedevelop = false
skipsdist = true
skip_install = true
deps = bindep
commands = bindep {posargs:test}
# --- project requirements ----------------------------------------------------
[testenv:lower-constraints]
setenv =
{[testenv]setenv}
TOX_CONSTRAINTS = -c{toxinidir}/lower-constraints.txt