blob: 7e155cd11c1a76b740ab9f93ffcedfd93a9e7f6f [file] [log] [blame]
Jay Pipesa6aa5f22012-07-24 19:40:29 -04001[tox]
Ghanshyam Mannde698452020-05-04 14:16:54 -05002envlist = pep8,py36,py38,bashate,pip-check-reqs
Martin Kopecdc844232020-12-24 15:57:53 +00003minversion = 3.18.0
Matthew Treinish7228e112013-10-03 14:58:54 +00004skipsdist = True
Ghanshyam1c680fd2020-01-20 11:43:29 -06005ignore_basepython_conflict = True
Jay Pipesa6aa5f22012-07-24 19:40:29 -04006
Matthew Treinish5b7626a2014-09-23 17:39:38 -04007[tempestenv]
Lee Yarwoodbc9fe8e2020-01-28 21:27:59 +00008basepython = python3
Joe Gordon9f1612e2015-01-28 11:23:43 -08009sitepackages = False
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090010setenv =
11 VIRTUAL_ENV={envdir}
12 OS_TEST_PATH=./tempest/test_discover
13deps =
Martin Kopec6b841272021-09-09 09:33:50 +000014 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090015 -r{toxinidir}/requirements.txt
Matthew Treinish5b7626a2014-09-23 17:39:38 -040016
17[testenv]
Ghanshyam1c680fd2020-01-20 11:43:29 -060018basepython = python3
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090019setenv =
20 VIRTUAL_ENV={envdir}
Andrea Frittoli8f018cb2017-08-11 14:36:18 +010021 OS_LOG_CAPTURE=1
Matthew Treinish5cc92892018-02-22 15:53:47 -050022 OS_STDOUT_CAPTURE=1
23 OS_STDERR_CAPTURE=1
24 OS_TEST_TIMEOUT=160
Stephen Finucanea6353c42018-07-06 14:00:36 +010025 PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site
Ghanshyam9cee5382020-02-01 20:18:56 -060026passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH TEMPEST_CONFIG TEMPEST_CONFIG_DIR http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY ZUUL_CACHE_DIR REQUIREMENTS_PIP_LOCATION GENERATE_TEMPEST_PLUGIN_LIST
Matthew Treinish7228e112013-10-03 14:58:54 +000027usedevelop = True
Andreas Jaeger880d9432017-12-01 07:38:54 +010028install_command = pip install {opts} {packages}
Martin Kopecdc844232020-12-24 15:57:53 +000029allowlist_externals = *
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090030deps =
Martin Kopec6b841272021-09-09 09:33:50 +000031 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090032 -r{toxinidir}/requirements.txt
33 -r{toxinidir}/test-requirements.txt
Sean Daguec7b4d882014-11-25 08:18:23 -050034commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090035 find . -type f -name "*.pyc" -delete
Masayuki Igawad0b8ebd2017-09-14 14:51:25 -060036 stestr --test-path ./tempest/tests run {posargs}
Matthew Treinish12fdf4b2013-10-03 15:20:09 +000037
Jon Grimm270bd7f2014-08-05 18:11:29 +000038[testenv:genconfig]
Matthew Treinishbdef1c72016-06-21 18:06:49 -040039commands = oslo-config-generator --config-file tempest/cmd/config-generator.tempest.conf
Jon Grimm270bd7f2014-08-05 18:11:29 +000040
Matthew Treinishb2f5cad2014-01-07 21:54:55 +000041[testenv:cover]
Matthew Treinish069d8282017-11-28 19:19:27 -050042setenv =
43 {[testenv]setenv}
44 PYTHON=coverage run --source tempest --parallel-mode
45commands =
46 coverage erase
47 find . -type f -name "*.pyc" -delete
48 stestr --test-path ./tempest/tests run {posargs}
49 coverage combine
50 coverage html -d cover
51 coverage xml -o cover/coverage.xml
52 coverage report
Matthew Treinishb2f5cad2014-01-07 21:54:55 +000053
Manik Bindlish8a7aaa52018-11-30 10:22:30 +000054[testenv:debug]
Manik Bindlish8a7aaa52018-11-30 10:22:30 +000055commands = oslo_debug_helper -t tempest/tests {posargs}
56
Giampaolo Lauria7a3e0042013-06-07 14:59:19 -040057[testenv:all]
Matthew Treinish0e25a902016-04-29 16:38:51 -040058envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -040059sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -060060basepython = {[tempestenv]basepython}
David Kranzf9695d22014-10-27 11:43:52 -040061# 'all' includes slow tests
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090062setenv =
63 {[tempestenv]setenv}
64 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
Matthew Treinish5b7626a2014-09-23 17:39:38 -040065deps = {[tempestenv]deps}
Giampaolo Lauria7a3e0042013-06-07 14:59:19 -040066commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090067 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +090068 tempest run --regex {posargs:''}
Matthew Treinish87af1bb2013-06-17 15:29:10 -040069
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020070[testenv:all-plugin]
Andrea Frittoli35d12ca2018-02-13 15:42:25 +000071# DEPRECATED
72# NOTE(andreaf) The all-plugin tox env uses sitepackages
73# so that plugins installed outsite of Tempest virtual environment
74# can be discovered. After the implementation during the Queens
75# release cycle of the goal of moving Tempest plugins in dedicated
76# git repos, this environment should not be used anymore. "all"
77# should be used instead with the appropriate regex filtering.
78sitepackages = True
79# 'all' includes slow tests
80setenv =
81 {[tempestenv]setenv}
82 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
Ghanshyam1c680fd2020-01-20 11:43:29 -060083basepython = {[tempestenv]basepython}
Andrea Frittoli35d12ca2018-02-13 15:42:25 +000084deps = {[tempestenv]deps}
85commands =
86 echo "WARNING: The all-plugin env is deprecated and will be removed"
87 echo "WARNING Please use the 'all' environment for Tempest plugins."
88 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +090089 tempest run --regex {posargs:''}
Andrea Frittoli35d12ca2018-02-13 15:42:25 +000090
91[testenv:all-site-packages]
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020092sitepackages = True
93# 'all' includes slow tests
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090094setenv =
95 {[tempestenv]setenv}
96 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
Ghanshyam1c680fd2020-01-20 11:43:29 -060097basepython = {[tempestenv]basepython}
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020098deps = {[tempestenv]deps}
99commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900100 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +0900101 tempest run --regex {posargs:''}
Marc Kodererc2f9b3a2015-07-27 15:19:08 +0200102
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400103[testenv:full]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400104envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400105sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600106basepython = {[tempestenv]basepython}
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400107setenv = {[tempestenv]setenv}
108deps = {[tempestenv]deps}
Matthew Treinish59eb0b22013-08-07 15:48:21 -0400109# The regex below is used to select which tests to run and exclude the slow tag:
Masayuki Igawa83522042015-12-01 16:51:34 +0900110# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
Martin Kopecdc844232020-12-24 15:57:53 +0000111# FIXME: We can replace it with the `--exclude-regex` option to exclude tests now.
Matthew Treinish83d2ec42013-07-30 16:37:32 -0400112commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900113 find . -type f -name "*.pyc" -delete
Sean Dague49505df2017-03-01 11:35:58 -0500114 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
115 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' {posargs}
Matthew Treinish83d2ec42013-07-30 16:37:32 -0400116
Attila Fazekas3f219f52018-03-01 16:50:10 +0000117[testenv:full-parallel]
118envdir = .tox/tempest
119sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600120basepython = {[tempestenv]basepython}
Attila Fazekas3f219f52018-03-01 16:50:10 +0000121setenv = {[tempestenv]setenv}
122deps = {[tempestenv]deps}
123# The regex below is used to select all tempest scenario and including the non slow api tests
124commands =
125 find . -type f -name "*.pyc" -delete
126 tempest run --regex '(^tempest\.scenario.*)|(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
127
Ghanshyam Mannba28d782021-09-03 10:21:54 -0500128[testenv:api-microversion-tests]
129envdir = .tox/tempest
130sitepackages = {[tempestenv]sitepackages}
131basepython = {[tempestenv]basepython}
132setenv = {[tempestenv]setenv}
133deps = {[tempestenv]deps}
134# The regex below is used to select all tempest api tests for services having API
135# microversion concept.
136commands =
137 find . -type f -name "*.pyc" -delete
138 tempest run --regex '(^tempest\.api\.compute)|(^tempest\.api\.volume)' {posargs}
139
Ghanshyam5072a242019-07-03 14:40:53 +0000140[testenv:integrated-network]
141envdir = .tox/tempest
142sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600143basepython = {[tempestenv]basepython}
Ghanshyam5072a242019-07-03 14:40:53 +0000144setenv = {[tempestenv]setenv}
145deps = {[tempestenv]deps}
146# The regex below is used to select which tests to run and exclude the slow tag and
Martin Kopecdc844232020-12-24 15:57:53 +0000147# tests listed in exclude-list file:
Ghanshyam5072a242019-07-03 14:40:53 +0000148commands =
149 find . -type f -name "*.pyc" -delete
Martin Kopecdc844232020-12-24 15:57:53 +0000150 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --exclude-list ./tools/tempest-integrated-gate-networking-exclude-list.txt {posargs}
Lance Bragstad7b98ea52021-02-10 03:49:01 +0000151 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --exclude-list ./tools/tempest-integrated-gate-networking-exclude-list.txt {posargs}
Ghanshyam5072a242019-07-03 14:40:53 +0000152
Ghanshyamee7fd1f2019-07-05 09:36:57 +0000153[testenv:integrated-compute]
154envdir = .tox/tempest
155sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600156basepython = {[tempestenv]basepython}
Ghanshyamee7fd1f2019-07-05 09:36:57 +0000157setenv = {[tempestenv]setenv}
158deps = {[tempestenv]deps}
159# The regex below is used to select which tests to run and exclude the slow tag and
Martin Kopecdc844232020-12-24 15:57:53 +0000160# tests listed in exclude-list file:
Ghanshyamee7fd1f2019-07-05 09:36:57 +0000161commands =
162 find . -type f -name "*.pyc" -delete
Martin Kopecdc844232020-12-24 15:57:53 +0000163 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --exclude-list ./tools/tempest-integrated-gate-compute-exclude-list.txt {posargs}
164 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --exclude-list ./tools/tempest-integrated-gate-compute-exclude-list.txt {posargs}
Ghanshyamee7fd1f2019-07-05 09:36:57 +0000165
Ghanshyam31609dc2019-07-05 09:23:37 +0000166[testenv:integrated-placement]
167envdir = .tox/tempest
168sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600169basepython = {[tempestenv]basepython}
Ghanshyam31609dc2019-07-05 09:23:37 +0000170setenv = {[tempestenv]setenv}
171deps = {[tempestenv]deps}
172# The regex below is used to select which tests to run and exclude the slow tag and
Martin Kopecdc844232020-12-24 15:57:53 +0000173# tests listed in exclude-list file:
Ghanshyam31609dc2019-07-05 09:23:37 +0000174commands =
175 find . -type f -name "*.pyc" -delete
Martin Kopecdc844232020-12-24 15:57:53 +0000176 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --exclude-list ./tools/tempest-integrated-gate-placement-exclude-list.txt {posargs}
177 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --exclude-list ./tools/tempest-integrated-gate-placement-exclude-list.txt {posargs}
Ghanshyam31609dc2019-07-05 09:23:37 +0000178
Ghanshyam Manna6994452019-07-05 08:43:23 +0000179[testenv:integrated-storage]
180envdir = .tox/tempest
181sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600182basepython = {[tempestenv]basepython}
Ghanshyam Manna6994452019-07-05 08:43:23 +0000183setenv = {[tempestenv]setenv}
184deps = {[tempestenv]deps}
185# The regex below is used to select which tests to run and exclude the slow tag and
Martin Kopecdc844232020-12-24 15:57:53 +0000186# tests listed in exclude-list file:
Ghanshyam Manna6994452019-07-05 08:43:23 +0000187commands =
188 find . -type f -name "*.pyc" -delete
Martin Kopecdc844232020-12-24 15:57:53 +0000189 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --exclude-list ./tools/tempest-integrated-gate-storage-exclude-list.txt {posargs}
190 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --exclude-list ./tools/tempest-integrated-gate-storage-exclude-list.txt {posargs}
Ghanshyam Manna6994452019-07-05 08:43:23 +0000191
Ghanshyam95358522019-07-05 08:58:32 +0000192[testenv:integrated-object-storage]
193envdir = .tox/tempest
194sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600195basepython = {[tempestenv]basepython}
Ghanshyam95358522019-07-05 08:58:32 +0000196setenv = {[tempestenv]setenv}
197deps = {[tempestenv]deps}
198# The regex below is used to select which tests to run and exclude the slow tag and
Martin Kopecdc844232020-12-24 15:57:53 +0000199# tests listed in exclude-list file:
Ghanshyam95358522019-07-05 08:58:32 +0000200commands =
201 find . -type f -name "*.pyc" -delete
Martin Kopecdc844232020-12-24 15:57:53 +0000202 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --exclude-list ./tools/tempest-integrated-gate-object-storage-exclude-list.txt {posargs}
203 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --exclude-list ./tools/tempest-integrated-gate-object-storage-exclude-list.txt {posargs}
Ghanshyam95358522019-07-05 08:58:32 +0000204
Matthew Treinish99288cd2014-02-10 09:21:51 -0500205[testenv:full-serial]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400206envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400207sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600208basepython = {[tempestenv]basepython}
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400209setenv = {[tempestenv]setenv}
210deps = {[tempestenv]deps}
Matthew Treinish99288cd2014-02-10 09:21:51 -0500211# The regex below is used to select which tests to run and exclude the slow tag:
Masayuki Igawa83522042015-12-01 16:51:34 +0900212# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
Martin Kopecdc844232020-12-24 15:57:53 +0000213# FIXME: We can replace it with the `--exclude-regex` option to exclude tests now.
Matthew Treinish99288cd2014-02-10 09:21:51 -0500214commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900215 find . -type f -name "*.pyc" -delete
Masayuki Igawa730f59b2016-09-21 11:47:32 +0200216 tempest run --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario))' {posargs}
Matthew Treinish99288cd2014-02-10 09:21:51 -0500217
Andrea Frittolib838af92017-03-06 15:11:13 +0000218[testenv:scenario]
219envdir = .tox/tempest
220sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600221basepython = {[tempestenv]basepython}
Andrea Frittolib838af92017-03-06 15:11:13 +0000222setenv = {[tempestenv]setenv}
223deps = {[tempestenv]deps}
224# The regex below is used to select all scenario tests
225commands =
226 find . -type f -name "*.pyc" -delete
227 tempest run --serial --regex '(^tempest\.scenario)' {posargs}
228
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400229[testenv:smoke]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400230envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400231sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600232basepython = {[tempestenv]basepython}
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400233setenv = {[tempestenv]setenv}
234deps = {[tempestenv]deps}
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400235commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900236 find . -type f -name "*.pyc" -delete
Matthew Treinish68c78712016-07-28 14:47:27 -0400237 tempest run --regex '\[.*\bsmoke\b.*\]' {posargs}
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400238
Joe Gordond2796292013-11-14 12:55:55 -0800239[testenv:smoke-serial]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400240envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400241sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600242basepython = {[tempestenv]basepython}
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400243setenv = {[tempestenv]setenv}
244deps = {[tempestenv]deps}
Joe Gordond2796292013-11-14 12:55:55 -0800245# This is still serial because neutron doesn't work with parallel. See:
246# https://bugs.launchpad.net/tempest/+bug/1216076 so the neutron smoke
247# job would fail if we moved it to parallel.
248commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900249 find . -type f -name "*.pyc" -delete
Matthew Treinish68c78712016-07-28 14:47:27 -0400250 tempest run --serial --regex '\[.*\bsmoke\b.*\]' {posargs}
Joe Gordond2796292013-11-14 12:55:55 -0800251
ghanshyam10326c72018-08-01 08:53:00 +0000252[testenv:slow-serial]
253envdir = .tox/tempest
254sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600255basepython = {[tempestenv]basepython}
ghanshyam10326c72018-08-01 08:53:00 +0000256setenv = {[tempestenv]setenv}
257deps = {[tempestenv]deps}
258# The regex below is used to select the slow tagged tests to run serially:
259commands =
260 find . -type f -name "*.pyc" -delete
261 tempest run --serial --regex '\[.*\bslow\b.*\]' {posargs}
262
Ghanshyama0b8ca42019-07-17 09:46:41 +0000263[testenv:ipv6-only]
264envdir = .tox/tempest
265sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600266basepython = {[tempestenv]basepython}
Ghanshyama0b8ca42019-07-17 09:46:41 +0000267setenv = {[tempestenv]setenv}
268deps = {[tempestenv]deps}
269# Run only smoke and ipv6 tests. This env is used to tests
270# the ipv6 deployments and basic tests run fine so that we can
271# verify that services listen on IPv6 address.
272commands =
273 find . -type f -name "*.pyc" -delete
274 tempest run --regex '\[.*\bsmoke|ipv6|test_network_v6\b.*\]' {posargs}
275
Sean Dagueb56052b2013-05-21 17:57:41 -0400276[testenv:venv]
Matt Riedemannd5e92822018-01-25 11:25:57 -0500277deps =
Martin Kopec6b841272021-09-09 09:33:50 +0000278 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Matt Riedemannd5e92822018-01-25 11:25:57 -0500279 -r{toxinidir}/requirements.txt
280 -r{toxinidir}/doc/requirements.txt
Sean Dagueb56052b2013-05-21 17:57:41 -0400281commands = {posargs}
Sean Dagueb56052b2013-05-21 17:57:41 -0400282
Matthew Treinish0e25a902016-04-29 16:38:51 -0400283[testenv:venv-tempest]
284envdir = .tox/tempest
285sitepackages = {[tempestenv]sitepackages}
Ghanshyam1c680fd2020-01-20 11:43:29 -0600286basepython = {[tempestenv]basepython}
Matthew Treinish0e25a902016-04-29 16:38:51 -0400287setenv = {[tempestenv]setenv}
288deps = {[tempestenv]deps}
289commands = {posargs}
290
Matthew Treinish8bd013e2014-06-18 21:58:32 -0400291[testenv:docs]
junboli173b11c2018-01-15 11:25:35 +0800292deps =
Martin Kopec6b841272021-09-09 09:33:50 +0000293 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
junboli173b11c2018-01-15 11:25:35 +0800294 -r{toxinidir}/doc/requirements.txt
Mathew Oddenb389faa2015-07-30 20:24:08 +0000295commands =
Lukas Piwowarskia9055012020-06-15 17:16:15 +0200296 sphinx-apidoc -f -o doc/source/tests/compute tempest/api/compute
297 sphinx-apidoc -f -o doc/source/tests/identity tempest/api/identity
298 sphinx-apidoc -f -o doc/source/tests/image tempest/api/image
299 sphinx-apidoc -f -o doc/source/tests/network tempest/api/network
300 sphinx-apidoc -f -o doc/source/tests/object_storage tempest/api/object_storage
301 sphinx-apidoc -f -o doc/source/tests/scenario tempest/scenario
302 sphinx-apidoc -f -o doc/source/tests/volume tempest/api/volume
junboli173b11c2018-01-15 11:25:35 +0800303 rm -rf doc/build
Ihar Hrachyshka8032b2e2017-11-27 14:16:59 -0800304 sphinx-build -W -b html doc/source doc/build/html
Martin Kopecdc844232020-12-24 15:57:53 +0000305allowlist_externals =
Lukas Piwowarskia9055012020-06-15 17:16:15 +0200306 rm
Matthew Treinish8bd013e2014-06-18 21:58:32 -0400307
Masayuki Igawa7e4ef4c2019-07-03 17:17:44 +0900308[testenv:pdf-docs]
Masayuki Igawa7e4ef4c2019-07-03 17:17:44 +0900309deps = {[testenv:docs]deps}
Martin Kopecdc844232020-12-24 15:57:53 +0000310allowlist_externals =
Lukas Piwowarskia9055012020-06-15 17:16:15 +0200311 rm
Masayuki Igawa7e4ef4c2019-07-03 17:17:44 +0900312 make
313commands =
Lukas Piwowarskia9055012020-06-15 17:16:15 +0200314 sphinx-apidoc -f -o doc/source/tests/compute tempest/api/compute
315 sphinx-apidoc -f -o doc/source/tests/identity tempest/api/identity
316 sphinx-apidoc -f -o doc/source/tests/image tempest/api/image
317 sphinx-apidoc -f -o doc/source/tests/network tempest/api/network
318 sphinx-apidoc -f -o doc/source/tests/object_storage tempest/api/object_storage
319 sphinx-apidoc -f -o doc/source/tests/scenario tempest/scenario
320 sphinx-apidoc -f -o doc/source/tests/volume tempest/api/volume
Masayuki Igawa7e4ef4c2019-07-03 17:17:44 +0900321 sphinx-build -W -b latex doc/source doc/build/pdf
322 make -C doc/build/pdf
323
Jay Pipesa6aa5f22012-07-24 19:40:29 -0400324[testenv:pep8]
afazekas40fcb9b2019-03-08 11:25:11 +0100325deps =
Attila Fazekasc07edb52019-03-17 15:38:03 +0100326 -r{toxinidir}/test-requirements.txt
afazekas40fcb9b2019-03-08 11:25:11 +0100327 autopep8
Matthew Treinish3d468112013-10-24 21:49:14 +0000328commands =
afazekas40fcb9b2019-03-08 11:25:11 +0100329 autopep8 --exit-code --max-line-length=79 --experimental --diff -r tempest setup.py
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900330 flake8 {posargs}
331 check-uuid
Matthew Treinish3d468112013-10-24 21:49:14 +0000332
afazekas40fcb9b2019-03-08 11:25:11 +0100333[testenv:autopep8]
334deps = autopep8
afazekas40fcb9b2019-03-08 11:25:11 +0100335commands =
Attila Fazekasc07edb52019-03-17 15:38:03 +0100336 {toxinidir}/tools/format.sh
afazekas40fcb9b2019-03-08 11:25:11 +0100337
Chris Hoge7579c1a2015-02-26 14:12:15 -0800338[testenv:uuidgen]
339commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900340 check-uuid --fix
Chris Hoge296558c2015-02-19 00:29:49 -0600341
Giampaolo Lauria1b837ce2013-05-01 11:22:07 -0400342[hacking]
Matthew Treinish2b6db0c2014-05-17 10:42:36 -0400343import_exceptions = tempest.services
Giampaolo Lauria1b837ce2013-05-01 11:22:07 -0400344
Monty Taylorb2ca5ca2013-04-28 18:00:21 -0700345[flake8]
caoyuan349ba752019-04-23 19:40:06 +0800346# E125 is a won't fix until https://github.com/jcrocholl/pep8/issues/126 is resolved. For further detail see https://review.opendev.org/#/c/36788/
Matthew Treinish96e9e882014-06-09 18:37:19 -0400347# E123 skipped because it is ignored by default in the default pep8
Matthew Treinish1d14c542014-06-17 20:25:40 -0400348# E129 skipped because it is too limiting when combined with other rules
Stephen Finucanefc42cc62018-07-06 13:39:55 +0100349# W504 skipped because it is overeager and unnecessary
350ignore = E125,E123,E129,W504
Monty Taylorb2ca5ca2013-04-28 18:00:21 -0700351show-source = True
junboli8bd00e32017-08-22 17:06:15 +0800352exclude = .git,.venv,.tox,dist,doc,*egg,build
Jordan Pittier525ec712016-12-07 17:51:26 +0100353enable-extensions = H106,H203,H904
Masayuki Igawa134d9f72017-02-10 18:05:26 +0900354import-order-style = pep8
Andrea Frittoli (andreaf)897ecfb2016-02-23 10:12:48 -0500355
Andreas Jaegerf27a3342020-03-29 10:21:39 +0200356[flake8:local-plugins]
357extension =
358 T102 = checks:import_no_clients_in_api_and_scenario_tests
359 T104 = checks:scenario_tests_need_service_tags
360 T105 = checks:no_setup_teardown_class_for_tests
361 T107 = checks:service_tags_not_in_module_path
362 T108 = checks:no_hyphen_at_end_of_rand_name
363 N322 = checks:no_mutable_default_args
364 T109 = checks:no_testtools_skip_decorator
365 T110 = checks:get_resources_on_service_clients
366 T111 = checks:delete_resources_on_service_clients
367 T112 = checks:dont_import_local_tempest_into_lib
368 T113 = checks:use_rand_uuid_instead_of_uuid4
369 T114 = checks:dont_use_config_in_tempest_lib
370 T115 = checks:dont_put_admin_tests_on_nonadmin_path
371 T116 = checks:unsupported_exception_attribute_PY3
372 T117 = checks:negative_test_attribute_always_applied_to_negative_tests
Takashi Kajinami2a5ef1b2021-11-29 15:48:25 +0900373 T118 = checks:no_log_warn
Andreas Jaegerf27a3342020-03-29 10:21:39 +0200374paths =
375 ./tempest/hacking
376
Andrea Frittoli (andreaf)897ecfb2016-02-23 10:12:48 -0500377[testenv:releasenotes]
junboli173b11c2018-01-15 11:25:35 +0800378deps =
Martin Kopec6b841272021-09-09 09:33:50 +0000379 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
junboli173b11c2018-01-15 11:25:35 +0800380 -r{toxinidir}/doc/requirements.txt
junboli8bd00e32017-08-22 17:06:15 +0800381commands =
junboli173b11c2018-01-15 11:25:35 +0800382 rm -rf releasenotes/build
383 sphinx-build -a -E -W -d releasenotes/build/doctrees \
384 -b html releasenotes/source releasenotes/build/html
Martin Kopecdc844232020-12-24 15:57:53 +0000385allowlist_externals = rm
Jordan Pittiercefaa2b2016-07-22 13:04:26 +0200386
Masayuki Igawade1153b2019-07-30 18:02:07 +0900387[testenv:bashate]
Masayuki Igawade1153b2019-07-30 18:02:07 +0900388# if you want to test out some changes you have made to bashate
389# against tempest, just set BASHATE_INSTALL_PATH=/path/... to your
390# modified bashate tree
391deps =
392 {env:BASHATE_INSTALL_PATH:bashate}
Martin Kopecdc844232020-12-24 15:57:53 +0000393allowlist_externals = bash
Masayuki Igawade1153b2019-07-30 18:02:07 +0900394commands = bash -c "find {toxinidir}/tools \
395 -not \( -type d -name .?\* -prune \) \
396 -type f \
397 -name \*.sh \
Masayuki Igawafdd96442019-08-02 13:44:49 +0900398 -print0 | xargs -0 bashate -v -eE005,E042 -i E006"
Masayuki Igawade1153b2019-07-30 18:02:07 +0900399
Jordan Pittiercefaa2b2016-07-22 13:04:26 +0200400[testenv:pip-check-reqs]
401# Do not install test-requirements as that will pollute the virtualenv for
402# determining missing packages.
403# This also means that pip-check-reqs must be installed separately, outside
404# of the requirements.txt files
405deps = pip_check_reqs
406 -r{toxinidir}/requirements.txt
407commands=
408 pip-extra-reqs -d --ignore-file=tempest/tests/* tempest
409 pip-missing-reqs -d --ignore-file=tempest/tests/* tempest
Chandan Kumarac5c5532016-11-30 18:49:26 +0530410
411
412[testenv:bindep]
413# Do not install any requirements. We want this to be fast and work even if
414# system dependencies are missing, since it's used to tell you what system
415# dependencies are missing! This also means that bindep must be installed
416# separately, outside of the requirements files.
417deps = bindep
418commands = bindep test
Chandan Kumarb7affe42017-06-29 13:57:01 +0530419
420[testenv:plugin-sanity-check]
421# perform tempest plugin sanity
Martin Kopecdc844232020-12-24 15:57:53 +0000422allowlist_externals = bash
Chandan Kumarb7affe42017-06-29 13:57:01 +0530423commands =
424 bash tools/tempest-plugin-sanity.sh
Ghanshyam Mann83d13e52020-12-29 13:13:40 -0600425
426[testenv:stestr-master]
427envdir = .tox/tempest
428sitepackages = {[tempestenv]sitepackages}
429basepython = {[tempestenv]basepython}
430setenv = {[tempestenv]setenv}
431deps = {[tempestenv]deps}
432# The below command install stestr master version and run smoke tests
433commands =
434 find . -type f -name "*.pyc" -delete
435 pip install -U git+https://github.com/mtreinish/stestr
436 tempest run --regex '\[.*\bsmoke\b.*\]' {posargs}