blob: 5df5cec2fe1d250f80aad60944e29e882d63ef4a [file] [log] [blame]
Jay Pipesa6aa5f22012-07-24 19:40:29 -04001[tox]
Manik Bindlishaa6f7df2019-03-08 06:49:05 +00002envlist = pep8,py36,py37,py27,pip-check-reqs
Ghanshyam3a59e1e2016-01-14 17:15:29 +09003minversion = 2.3.1
Matthew Treinish7228e112013-10-03 14:58:54 +00004skipsdist = True
Jay Pipesa6aa5f22012-07-24 19:40:29 -04005
Matthew Treinish5b7626a2014-09-23 17:39:38 -04006[tempestenv]
Joe Gordon9f1612e2015-01-28 11:23:43 -08007sitepackages = False
Masayuki Igawad81d3ce2016-04-20 15:00:54 +09008setenv =
9 VIRTUAL_ENV={envdir}
10 OS_TEST_PATH=./tempest/test_discover
11deps =
caoyuan349ba752019-04-23 19:40:06 +080012 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090013 -r{toxinidir}/requirements.txt
Matthew Treinish5b7626a2014-09-23 17:39:38 -040014
15[testenv]
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090016setenv =
17 VIRTUAL_ENV={envdir}
Andrea Frittoli8f018cb2017-08-11 14:36:18 +010018 OS_LOG_CAPTURE=1
Matthew Treinish5cc92892018-02-22 15:53:47 -050019 OS_STDOUT_CAPTURE=1
20 OS_STDERR_CAPTURE=1
21 OS_TEST_TIMEOUT=160
Stephen Finucanea6353c42018-07-06 14:00:36 +010022 PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site
Chris Dent9b4c50c2018-10-03 10:24:40 +010023passenv = 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 GABBI_TEMPEST_PATH
Matthew Treinish7228e112013-10-03 14:58:54 +000024usedevelop = True
Andreas Jaeger880d9432017-12-01 07:38:54 +010025install_command = pip install {opts} {packages}
Matthew Treinish5b7626a2014-09-23 17:39:38 -040026whitelist_externals = *
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090027deps =
caoyuan349ba752019-04-23 19:40:06 +080028 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090029 -r{toxinidir}/requirements.txt
30 -r{toxinidir}/test-requirements.txt
Sean Daguec7b4d882014-11-25 08:18:23 -050031commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090032 find . -type f -name "*.pyc" -delete
Masayuki Igawad0b8ebd2017-09-14 14:51:25 -060033 stestr --test-path ./tempest/tests run {posargs}
Matthew Treinish12fdf4b2013-10-03 15:20:09 +000034
Jon Grimm270bd7f2014-08-05 18:11:29 +000035[testenv:genconfig]
Matthew Treinishbdef1c72016-06-21 18:06:49 -040036commands = oslo-config-generator --config-file tempest/cmd/config-generator.tempest.conf
Jon Grimm270bd7f2014-08-05 18:11:29 +000037
Matthew Treinishb2f5cad2014-01-07 21:54:55 +000038[testenv:cover]
Matthew Treinish069d8282017-11-28 19:19:27 -050039setenv =
40 {[testenv]setenv}
41 PYTHON=coverage run --source tempest --parallel-mode
42commands =
43 coverage erase
44 find . -type f -name "*.pyc" -delete
45 stestr --test-path ./tempest/tests run {posargs}
46 coverage combine
47 coverage html -d cover
48 coverage xml -o cover/coverage.xml
49 coverage report
Matthew Treinishb2f5cad2014-01-07 21:54:55 +000050
Manik Bindlish8a7aaa52018-11-30 10:22:30 +000051[testenv:debug]
52basepython = python3
53commands = oslo_debug_helper -t tempest/tests {posargs}
54
Giampaolo Lauria7a3e0042013-06-07 14:59:19 -040055[testenv:all]
Matthew Treinish0e25a902016-04-29 16:38:51 -040056envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -040057sitepackages = {[tempestenv]sitepackages}
David Kranzf9695d22014-10-27 11:43:52 -040058# 'all' includes slow tests
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090059setenv =
60 {[tempestenv]setenv}
61 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
Matthew Treinish5b7626a2014-09-23 17:39:38 -040062deps = {[tempestenv]deps}
Giampaolo Lauria7a3e0042013-06-07 14:59:19 -040063commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090064 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +090065 tempest run --regex {posargs:''}
Matthew Treinish87af1bb2013-06-17 15:29:10 -040066
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020067[testenv:all-plugin]
Andrea Frittoli35d12ca2018-02-13 15:42:25 +000068# DEPRECATED
69# NOTE(andreaf) The all-plugin tox env uses sitepackages
70# so that plugins installed outsite of Tempest virtual environment
71# can be discovered. After the implementation during the Queens
72# release cycle of the goal of moving Tempest plugins in dedicated
73# git repos, this environment should not be used anymore. "all"
74# should be used instead with the appropriate regex filtering.
75sitepackages = True
76# 'all' includes slow tests
77setenv =
78 {[tempestenv]setenv}
79 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
80deps = {[tempestenv]deps}
81commands =
82 echo "WARNING: The all-plugin env is deprecated and will be removed"
83 echo "WARNING Please use the 'all' environment for Tempest plugins."
84 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +090085 tempest run --regex {posargs:''}
Andrea Frittoli35d12ca2018-02-13 15:42:25 +000086
87[testenv:all-site-packages]
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020088sitepackages = True
89# 'all' includes slow tests
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090090setenv =
91 {[tempestenv]setenv}
92 OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020093deps = {[tempestenv]deps}
94commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +090095 find . -type f -name "*.pyc" -delete
Masayuki Igawafe0de682019-05-21 17:04:28 +090096 tempest run --regex {posargs:''}
Marc Kodererc2f9b3a2015-07-27 15:19:08 +020097
Monty Taylor8d4c90c2013-05-02 14:33:18 -040098[testenv:full]
Matthew Treinish0e25a902016-04-29 16:38:51 -040099envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400100sitepackages = {[tempestenv]sitepackages}
101setenv = {[tempestenv]setenv}
102deps = {[tempestenv]deps}
Matthew Treinish59eb0b22013-08-07 15:48:21 -0400103# The regex below is used to select which tests to run and exclude the slow tag:
Masayuki Igawa83522042015-12-01 16:51:34 +0900104# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
Masayuki Igawaac0b1712018-03-09 16:20:42 +0900105# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
Matthew Treinish83d2ec42013-07-30 16:37:32 -0400106commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900107 find . -type f -name "*.pyc" -delete
Sean Dague49505df2017-03-01 11:35:58 -0500108 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
109 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' {posargs}
Matthew Treinish83d2ec42013-07-30 16:37:32 -0400110
Attila Fazekas3f219f52018-03-01 16:50:10 +0000111[testenv:full-parallel]
112envdir = .tox/tempest
113sitepackages = {[tempestenv]sitepackages}
114setenv = {[tempestenv]setenv}
115deps = {[tempestenv]deps}
116# The regex below is used to select all tempest scenario and including the non slow api tests
117commands =
118 find . -type f -name "*.pyc" -delete
119 tempest run --regex '(^tempest\.scenario.*)|(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
120
Ghanshyam5072a242019-07-03 14:40:53 +0000121[testenv:integrated-network]
122envdir = .tox/tempest
123sitepackages = {[tempestenv]sitepackages}
124setenv = {[tempestenv]setenv}
125deps = {[tempestenv]deps}
126# The regex below is used to select which tests to run and exclude the slow tag and
127# tests listed in blacklist file:
128commands =
129 find . -type f -name "*.pyc" -delete
130 tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs}
131 tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs}
132
Matthew Treinish99288cd2014-02-10 09:21:51 -0500133[testenv:full-serial]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400134envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400135sitepackages = {[tempestenv]sitepackages}
136setenv = {[tempestenv]setenv}
137deps = {[tempestenv]deps}
Matthew Treinish99288cd2014-02-10 09:21:51 -0500138# The regex below is used to select which tests to run and exclude the slow tag:
Masayuki Igawa83522042015-12-01 16:51:34 +0900139# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
Masayuki Igawaac0b1712018-03-09 16:20:42 +0900140# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
Matthew Treinish99288cd2014-02-10 09:21:51 -0500141commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900142 find . -type f -name "*.pyc" -delete
Masayuki Igawa730f59b2016-09-21 11:47:32 +0200143 tempest run --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario))' {posargs}
Matthew Treinish99288cd2014-02-10 09:21:51 -0500144
Andrea Frittolib838af92017-03-06 15:11:13 +0000145[testenv:scenario]
146envdir = .tox/tempest
147sitepackages = {[tempestenv]sitepackages}
148setenv = {[tempestenv]setenv}
149deps = {[tempestenv]deps}
150# The regex below is used to select all scenario tests
151commands =
152 find . -type f -name "*.pyc" -delete
153 tempest run --serial --regex '(^tempest\.scenario)' {posargs}
154
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400155[testenv:smoke]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400156envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400157sitepackages = {[tempestenv]sitepackages}
158setenv = {[tempestenv]setenv}
159deps = {[tempestenv]deps}
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400160commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900161 find . -type f -name "*.pyc" -delete
Matthew Treinish68c78712016-07-28 14:47:27 -0400162 tempest run --regex '\[.*\bsmoke\b.*\]' {posargs}
Monty Taylor8d4c90c2013-05-02 14:33:18 -0400163
Joe Gordond2796292013-11-14 12:55:55 -0800164[testenv:smoke-serial]
Matthew Treinish0e25a902016-04-29 16:38:51 -0400165envdir = .tox/tempest
Matthew Treinish5b7626a2014-09-23 17:39:38 -0400166sitepackages = {[tempestenv]sitepackages}
167setenv = {[tempestenv]setenv}
168deps = {[tempestenv]deps}
Joe Gordond2796292013-11-14 12:55:55 -0800169# This is still serial because neutron doesn't work with parallel. See:
170# https://bugs.launchpad.net/tempest/+bug/1216076 so the neutron smoke
171# job would fail if we moved it to parallel.
172commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900173 find . -type f -name "*.pyc" -delete
Matthew Treinish68c78712016-07-28 14:47:27 -0400174 tempest run --serial --regex '\[.*\bsmoke\b.*\]' {posargs}
Joe Gordond2796292013-11-14 12:55:55 -0800175
ghanshyam10326c72018-08-01 08:53:00 +0000176[testenv:slow-serial]
177envdir = .tox/tempest
178sitepackages = {[tempestenv]sitepackages}
179setenv = {[tempestenv]setenv}
180deps = {[tempestenv]deps}
181# The regex below is used to select the slow tagged tests to run serially:
182commands =
183 find . -type f -name "*.pyc" -delete
184 tempest run --serial --regex '\[.*\bslow\b.*\]' {posargs}
185
Sean Dagueb56052b2013-05-21 17:57:41 -0400186[testenv:venv]
Matt Riedemannd5e92822018-01-25 11:25:57 -0500187deps =
caoyuan349ba752019-04-23 19:40:06 +0800188 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
Matt Riedemannd5e92822018-01-25 11:25:57 -0500189 -r{toxinidir}/requirements.txt
190 -r{toxinidir}/doc/requirements.txt
Sean Dagueb56052b2013-05-21 17:57:41 -0400191commands = {posargs}
Sean Dagueb56052b2013-05-21 17:57:41 -0400192
Matthew Treinish0e25a902016-04-29 16:38:51 -0400193[testenv:venv-tempest]
194envdir = .tox/tempest
195sitepackages = {[tempestenv]sitepackages}
196setenv = {[tempestenv]setenv}
197deps = {[tempestenv]deps}
198commands = {posargs}
199
Matthew Treinish8bd013e2014-06-18 21:58:32 -0400200[testenv:docs]
Doug Hellmann05f3dfe2018-09-18 15:04:51 -0400201basepython = python3
junboli173b11c2018-01-15 11:25:35 +0800202deps =
caoyuan349ba752019-04-23 19:40:06 +0800203 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
junboli173b11c2018-01-15 11:25:35 +0800204 -r{toxinidir}/requirements.txt
205 -r{toxinidir}/doc/requirements.txt
Mathew Oddenb389faa2015-07-30 20:24:08 +0000206commands =
junboli173b11c2018-01-15 11:25:35 +0800207 rm -rf doc/build
Ihar Hrachyshka8032b2e2017-11-27 14:16:59 -0800208 sphinx-build -W -b html doc/source doc/build/html
junboli173b11c2018-01-15 11:25:35 +0800209whitelist_externals = rm
Matthew Treinish8bd013e2014-06-18 21:58:32 -0400210
Jay Pipesa6aa5f22012-07-24 19:40:29 -0400211[testenv:pep8]
afazekas40fcb9b2019-03-08 11:25:11 +0100212deps =
Attila Fazekasc07edb52019-03-17 15:38:03 +0100213 -r{toxinidir}/test-requirements.txt
afazekas40fcb9b2019-03-08 11:25:11 +0100214 autopep8
Doug Hellmann05f3dfe2018-09-18 15:04:51 -0400215basepython = python3
Matthew Treinish3d468112013-10-24 21:49:14 +0000216commands =
afazekas40fcb9b2019-03-08 11:25:11 +0100217 autopep8 --exit-code --max-line-length=79 --experimental --diff -r tempest setup.py
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900218 flake8 {posargs}
219 check-uuid
Matthew Treinish3d468112013-10-24 21:49:14 +0000220
afazekas40fcb9b2019-03-08 11:25:11 +0100221[testenv:autopep8]
222deps = autopep8
223basepython = python3
224commands =
Attila Fazekasc07edb52019-03-17 15:38:03 +0100225 {toxinidir}/tools/format.sh
afazekas40fcb9b2019-03-08 11:25:11 +0100226
Chris Hoge7579c1a2015-02-26 14:12:15 -0800227[testenv:uuidgen]
228commands =
Masayuki Igawad81d3ce2016-04-20 15:00:54 +0900229 check-uuid --fix
Chris Hoge296558c2015-02-19 00:29:49 -0600230
Giampaolo Lauria1b837ce2013-05-01 11:22:07 -0400231[hacking]
Giampaolo Lauriad50c27d2013-05-23 15:23:12 -0400232local-check-factory = tempest.hacking.checks.factory
Matthew Treinish2b6db0c2014-05-17 10:42:36 -0400233import_exceptions = tempest.services
Giampaolo Lauria1b837ce2013-05-01 11:22:07 -0400234
Monty Taylorb2ca5ca2013-04-28 18:00:21 -0700235[flake8]
caoyuan349ba752019-04-23 19:40:06 +0800236# 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 -0400237# E123 skipped because it is ignored by default in the default pep8
Matthew Treinish1d14c542014-06-17 20:25:40 -0400238# E129 skipped because it is too limiting when combined with other rules
Stephen Finucanefc42cc62018-07-06 13:39:55 +0100239# W504 skipped because it is overeager and unnecessary
240ignore = E125,E123,E129,W504
Monty Taylorb2ca5ca2013-04-28 18:00:21 -0700241show-source = True
junboli8bd00e32017-08-22 17:06:15 +0800242exclude = .git,.venv,.tox,dist,doc,*egg,build
Jordan Pittier525ec712016-12-07 17:51:26 +0100243enable-extensions = H106,H203,H904
Masayuki Igawa134d9f72017-02-10 18:05:26 +0900244import-order-style = pep8
Andrea Frittoli (andreaf)897ecfb2016-02-23 10:12:48 -0500245
246[testenv:releasenotes]
Doug Hellmann05f3dfe2018-09-18 15:04:51 -0400247basepython = python3
junboli173b11c2018-01-15 11:25:35 +0800248deps =
caoyuan349ba752019-04-23 19:40:06 +0800249 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
junboli173b11c2018-01-15 11:25:35 +0800250 -r{toxinidir}/requirements.txt
251 -r{toxinidir}/doc/requirements.txt
junboli8bd00e32017-08-22 17:06:15 +0800252commands =
junboli173b11c2018-01-15 11:25:35 +0800253 rm -rf releasenotes/build
254 sphinx-build -a -E -W -d releasenotes/build/doctrees \
255 -b html releasenotes/source releasenotes/build/html
256whitelist_externals = rm
Jordan Pittiercefaa2b2016-07-22 13:04:26 +0200257
258[testenv:pip-check-reqs]
259# Do not install test-requirements as that will pollute the virtualenv for
260# determining missing packages.
261# This also means that pip-check-reqs must be installed separately, outside
262# of the requirements.txt files
263deps = pip_check_reqs
264 -r{toxinidir}/requirements.txt
265commands=
266 pip-extra-reqs -d --ignore-file=tempest/tests/* tempest
267 pip-missing-reqs -d --ignore-file=tempest/tests/* tempest
Chandan Kumarac5c5532016-11-30 18:49:26 +0530268
269
270[testenv:bindep]
271# Do not install any requirements. We want this to be fast and work even if
272# system dependencies are missing, since it's used to tell you what system
273# dependencies are missing! This also means that bindep must be installed
274# separately, outside of the requirements files.
275deps = bindep
276commands = bindep test
Chandan Kumarb7affe42017-06-29 13:57:01 +0530277
278[testenv:plugin-sanity-check]
279# perform tempest plugin sanity
Masayuki Igawa8460cb12019-05-16 12:03:23 +0900280basepython = python3
Chandan Kumarb7affe42017-06-29 13:57:01 +0530281whitelist_externals = bash
282commands =
283 bash tools/tempest-plugin-sanity.sh