diff --git a/tox.ini b/tox.ini index 80f32d36408..41d757e19ed 100644 --- a/tox.ini +++ b/tox.ini @@ -1,28 +1,26 @@ [tox] envlist = docs,py3,pep8 -minversion = 3.18.0 -skipsdist = False -ignore_basepython_conflict = True +minversion = 4.6.0 [testenv] description = - Run unit tests. -basepython = {env:TOX_PYTHON:python3} -setenv = VIRTUAL_ENV={envdir} - 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_TIMEOUT={env:OS_TEST_TIMEOUT:180} - PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site + Run unit tests. +setenv = + VIRTUAL_ENV={envdir} + 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_TIMEOUT={env:OS_TEST_TIMEOUT:180} + PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site passenv = TRACE_FAILONLY - GENERATE_HASHES - http_proxy - HTTP_PROXY - https_proxy - HTTPS_PROXY - no_proxy - NO_PROXY - TOX_ENV_SRC_MODULES + GENERATE_HASHES + http_proxy + HTTP_PROXY + https_proxy + HTTPS_PROXY + no_proxy + NO_PROXY + TOX_ENV_SRC_MODULES usedevelop = True deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} @@ -38,7 +36,7 @@ commands = [testenv:debug] description = - Run specified tests through oslo_debug_helper, which allows use of pdb. + Run specified tests through oslo_debug_helper, which allows use of pdb. commands = oslo_debug_helper -t neutron/tests {posargs} [testenv:common] @@ -48,32 +46,35 @@ commands = false [testenv:dsvm] # Fake job to define environment variables shared between dsvm jobs -setenv = OS_SUDO_TESTING=1 - OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf - OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf - OS_FAIL_ON_MISSING_DEPS={env:OS_FAIL_ON_MISSING_DEPS:1} - OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs} +setenv = + OS_SUDO_TESTING=1 + OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf + OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf + OS_FAIL_ON_MISSING_DEPS={env:OS_FAIL_ON_MISSING_DEPS:1} + OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs} commands = false [testenv:functional] description = - Run functional tests. -setenv = {[testenv]setenv} - {[testenv:common]setenv} - OS_TEST_PATH=./neutron/tests/functional - OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs} + Run functional tests. +setenv = + {[testenv]setenv} + {[testenv:common]setenv} + OS_TEST_PATH=./neutron/tests/functional + OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs} # Because of issue with stestr and Python3, we need to avoid too much output # to be produced during tests, so we will ignore python warnings here - PYTHONWARNINGS=ignore + PYTHONWARNINGS=ignore deps = {[testenv]deps} -r{toxinidir}/neutron/tests/functional/requirements.txt [testenv:dsvm-functional] description = - Run functional tests that require sudo privileges. -setenv = {[testenv:functional]setenv} - {[testenv:dsvm]setenv} + Run functional tests that require sudo privileges. +setenv = + {[testenv:functional]setenv} + {[testenv:dsvm]setenv} deps = {[testenv:functional]deps} commands = @@ -82,7 +83,7 @@ commands = [testenv:dsvm-functional-gate] description = - Run functional gate tests that require sudo privileges. + Run functional gate tests that require sudo privileges. setenv = {[testenv:dsvm-functional]setenv} deps = {[testenv:dsvm-functional]deps} test_regex = .*MySQL\.|.*test_get_all_devices|.*TestMetadataAgent\.|.*BaseOVSTestCase\.|.*test_periodic_sync_routers_task|.*TestOvnNbSync.*|.*TestMaintenance|.*TestLogMaintenance|.*TestNBDbMonitor.*|.*test_ovn_client.*|.*test_initialize_network_segment_range_support_parallel_execution.*|.*test_direct_route_for_address_scope.*|.*test_fip_connection_for_address_scope.* @@ -94,16 +95,17 @@ commands = [testenv:dsvm-fullstack] description = - Run fullstack tests. -setenv = {[testenv]setenv} - {[testenv:common]setenv} - {[testenv:dsvm]setenv} - # workaround for DB teardown lock contention (bug/1541742) - OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:600} - OS_TEST_PATH=./neutron/tests/fullstack + Run fullstack tests. +setenv = + {[testenv]setenv} + {[testenv:common]setenv} + {[testenv:dsvm]setenv} + # workaround for DB teardown lock contention (bug/1541742) + OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:600} + OS_TEST_PATH=./neutron/tests/fullstack # Because of issue with stestr and Python3, we need to avoid too much output # to be produced during tests, so we will ignore python warnings here - PYTHONWARNINGS=ignore + PYTHONWARNINGS=ignore deps = {[testenv:functional]deps} commands = @@ -113,7 +115,7 @@ commands = [testenv:dsvm-fullstack-gate] description = - Run fullstack gate tests that require sudo privileges. + Run fullstack gate tests that require sudo privileges. setenv = {[testenv:dsvm-fullstack]setenv} deps = {[testenv:dsvm-fullstack]deps} commands = @@ -124,13 +126,13 @@ commands = [testenv:releasenotes] description = - Build release note documentation in HTML format. + Build release note documentation in HTML format. deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:pep8] description = - Run style and lint checks. + Run style and lint checks. deps = {[testenv]deps} pylint~=3.3 # GPLv2 @@ -144,7 +146,7 @@ commands = [testenv:cover] description = - Run unit tests and generate coverage report. + Run unit tests and generate coverage report. setenv = {[testenv]setenv} PYTHON=coverage run --source neutron --parallel-mode @@ -167,7 +169,7 @@ commands = {posargs} [testenv:docs] description = - Build documentation in HTML format. + Build documentation in HTML format. # Do not remove requirements.txt from deps list as without it # upper constraints will not be used for deps listed in requirements.txt # and may cause issues @@ -179,7 +181,7 @@ commands = sphinx-build -W -b html doc/source doc/build/html [testenv:pdf-docs] description = - Build documentation in PDF format. + Build documentation in PDF format. deps = {[testenv:docs]deps} allowlist_externals = @@ -190,7 +192,7 @@ commands = [testenv:linkcheck] description = - Build documentation link checks. + Build documentation link checks. deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -W -b linkcheck doc/source doc/build/linkcheck @@ -235,20 +237,22 @@ import_exceptions = neutron._i18n [testenv:genconfig] description = - Generate configuration example files. + Generate configuration example files. allowlist_externals = bash -commands = bash {toxinidir}/tools/generate_config_file_samples.sh +commands = + bash {toxinidir}/tools/generate_config_file_samples.sh [testenv:genpolicy] description = - Generate policy example files. -commands = oslopolicy-sample-generator --config-file=etc/oslo-policy-generator/policy.conf + Generate policy example files. +commands = + oslopolicy-sample-generator --config-file=etc/oslo-policy-generator/policy.conf # This environment can be used to quickly validate that all needed system # packages required to successfully execute test targets are installed [testenv:bindep] description = - Run binary dependency checks. + Run binary dependency checks. # 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 @@ -258,9 +262,9 @@ commands = bindep test [testenv:requirements] description = - Run requirement checks. + Run requirement checks. deps = -egit+https://opendev.org/openstack/requirements#egg=openstack-requirements allowlist_externals = bash commands = - bash -c '{envdir}/src/openstack-requirements/playbooks/files/project-requirements-change.py --req {envdir}/src/openstack-requirements --local {toxinidir} master' + bash -c '{envdir}/src/openstack-requirements/playbooks/files/project-requirements-change.py --req {envdir}/src/openstack-requirements --local {toxinidir} master'