blob: f42a5b5a5de70316102cc990a0d2615a86b7959c [file] [log] [blame]
DavidPurcell663aedf2017-01-03 10:01:14 -05001[tox]
Ghanshyam Mann51368ef2020-02-03 13:19:03 -06002minversion = 3.1.1
3envlist = pep8,py36,py37
DavidPurcell663aedf2017-01-03 10:01:14 -05004skipsdist = True
Ghanshyam Mann51368ef2020-02-03 13:19:03 -06005ignore_basepython_conflict = True
DavidPurcell663aedf2017-01-03 10:01:14 -05006
7[testenv]
Ghanshyam Mann51368ef2020-02-03 13:19:03 -06008basepython = python3
DavidPurcell663aedf2017-01-03 10:01:14 -05009usedevelop = True
pengyuesheng8c23e7a2019-09-29 10:17:59 +080010install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
DavidPurcell663aedf2017-01-03 10:01:14 -050011setenv =
12 VIRTUAL_ENV={envdir}
Felipe Monteiro7de19052017-08-06 05:47:27 +010013 OS_TEST_PATH=./patrole_tempest_plugin/tests/unit
14 LANGUAGE=en_US
15 LC_ALL=en_US.utf-8
DavidPurcell663aedf2017-01-03 10:01:14 -050016 PYTHONWARNINGS=default::DeprecationWarning
Felipe Monteiro5fa20f72017-12-01 02:09:08 +000017passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
Felipe Monteirodf958702017-02-27 03:53:50 +000018whitelist_externals = find
DavidPurcell029d8c32017-01-06 15:27:41 -050019deps = -r{toxinidir}/requirements.txt
20 -r{toxinidir}/test-requirements.txt
Jeremy Liue1014be2017-03-22 18:33:00 -070021commands =
DavidPurcell029d8c32017-01-06 15:27:41 -050022 find . -type f -name "*.pyc" -delete
Felipe Monteiro5fa20f72017-12-01 02:09:08 +000023 stestr --test-path ./patrole_tempest_plugin/tests/unit run {posargs}
DavidPurcell663aedf2017-01-03 10:01:14 -050024
25[testenv:pep8]
Gage Hugo0f73e7c2018-08-21 15:51:08 -050026deps =
27 -r{toxinidir}/test-requirements.txt
28commands =
29 flake8 {posargs}
30 bandit -r patrole_tempest_plugin -x patrole_tempest_plugin/tests -n 5
31 check-uuid --package patrole_tempest_plugin.tests.api
Felipe Monteirodf958702017-02-27 03:53:50 +000032
33[testenv:uuidgen]
Jeremy Liu78b19252017-04-01 16:19:09 +080034commands = check-uuid --package patrole_tempest_plugin.tests.api --fix
DavidPurcell663aedf2017-01-03 10:01:14 -050035
36[testenv:venv]
37commands = {posargs}
38
39[testenv:cover]
Joseph Abadae7d7bb2017-04-19 12:07:13 -040040commands = rm -rf *.pyc
41 rm -rf cover
42 rm -f .coverage
43 nosetests {posargs}
Felipe Monteiro1ee5f4d2017-03-04 18:07:27 +000044setenv = VIRTUAL_ENV={envdir}
45 NOSE_WITH_COVERAGE=1
46 NOSE_COVER_BRANCHES=1
47 NOSE_COVER_PACKAGE=patrole_tempest_plugin
48 NOSE_COVER_HTML=1
49 NOSE_COVER_HTML_DIR={toxinidir}/cover
50 NOSE_WHERE=patrole_tempest_plugin/tests/unit
51whitelist_externals = nosetests
Joseph Abadae7d7bb2017-04-19 12:07:13 -040052 rm
DavidPurcell663aedf2017-01-03 10:01:14 -050053
54[testenv:docs]
ghanshyam932b81d2018-03-14 02:07:33 +000055deps =
pengyuesheng8c23e7a2019-09-29 10:17:59 +080056 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
ghanshyam932b81d2018-03-14 02:07:33 +000057 -r{toxinidir}/requirements.txt
58 -r{toxinidir}/doc/requirements.txt
59commands =
Felipe Monteiro47c43cb2018-11-05 17:15:30 +000060 rm -rf doc/build doc/source/framework/code
ghanshyam932b81d2018-03-14 02:07:33 +000061 sphinx-build -W -b html doc/source doc/build/html
62whitelist_externals = rm
DavidPurcell663aedf2017-01-03 10:01:14 -050063
Masayuki Igawa94e6b182019-09-18 15:08:56 +090064[testenv:pdf-docs]
Masayuki Igawa94e6b182019-09-18 15:08:56 +090065deps = {[testenv:docs]deps}
66whitelist_externals =
67 make
68commands =
69 sphinx-build -W -b latex doc/source doc/build/pdf
70 make -C doc/build/pdf
71
DavidPurcell663aedf2017-01-03 10:01:14 -050072[testenv:releasenotes]
ghanshyam932b81d2018-03-14 02:07:33 +000073deps =
pengyuesheng8c23e7a2019-09-29 10:17:59 +080074 -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
ghanshyam932b81d2018-03-14 02:07:33 +000075 -r{toxinidir}/requirements.txt
76 -r{toxinidir}/doc/requirements.txt
DavidPurcell663aedf2017-01-03 10:01:14 -050077commands =
ghanshyam932b81d2018-03-14 02:07:33 +000078 rm -rf releasenotes/build
DavidPurcell663aedf2017-01-03 10:01:14 -050079 sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
ghanshyam932b81d2018-03-14 02:07:33 +000080whitelist_externals = rm
DavidPurcell663aedf2017-01-03 10:01:14 -050081
82[testenv:debug]
HaiJieZhangae9db6f2017-03-23 11:28:16 +080083commands = oslo_debug_helper -t patrole_tempest_plugin/tests {posargs}
DavidPurcell663aedf2017-01-03 10:01:14 -050084
Felipe Monteiro098a8cd2017-09-20 21:31:27 +010085[testenv:genconfig]
86commands = oslo-config-generator --config-file etc/config-generator.patrole.conf
87
DavidPurcell663aedf2017-01-03 10:01:14 -050088[flake8]
melissaml686e0d92018-01-26 01:07:42 +080089# [H106] Don't put vim configuration in source files.
Felipe Monteirob18a3f62017-09-19 04:25:51 +010090# [H203] Use assertIs(Not)None to check for None.
91# [H204] Use assert(Not)Equal to check for equality.
92# [H205] Use assert(Greater|Less)(Equal) for comparison.
melissaml686e0d92018-01-26 01:07:42 +080093# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
Felipe Monteirob18a3f62017-09-19 04:25:51 +010094# [H904] Delay string interpolations at logging calls.
95enable-extensions = H106,H203,H204,H205,H210,H904
DavidPurcell663aedf2017-01-03 10:01:14 -050096show-source = True
Felipe Monteiro4bf66a22017-05-07 14:44:21 +010097# E123, E125 skipped as they are invalid PEP-8.
Felipe Monteirof6eb8622017-08-06 06:08:02 +010098#
99# H405 is another one that is good as a guideline, but sometimes
100# multiline doc strings just don't have a natural summary
101# line. Rejecting code for this reason is wrong.
Andreas Jaeger2aad8082020-03-28 19:25:15 +0100102# W504 line break after binary operator
103ignore = E123,E125,H405,W504
DavidPurcell663aedf2017-01-03 10:01:14 -0500104builtins = _
105exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
Felipe Monteiro0854ded2017-05-05 16:30:55 +0100106
Andreas Jaeger2aad8082020-03-28 19:25:15 +0100107[flake8:local-plugins]
108extension =
109 T102 = checks:import_no_clients_in_api_tests
110 T105 = checks:no_setup_teardown_class_for_tests
111 T107 = checks:service_tags_not_in_module_path
112 T108 = checks:no_hyphen_at_end_of_rand_name
113 N322 = checks:no_mutable_default_args
114 T109 = checks:no_testtools_skip_decorator
115 T113 = checks:use_rand_uuid_instead_of_uuid4
116 P100 = checks:no_rbac_rule_validation_decorator
117 P101 = checks:no_rbac_suffix_in_test_filename
118 P102 = checks:no_rbac_test_suffix_in_test_class_name
119 P103 = checks:no_client_alias_in_test_cases
120 P104 = checks:no_extension_rbac_test_suffix_in_plugin_test_class_name
121paths = ./patrole_tempest_plugin/hacking
Doug Hellmann8669a512018-03-22 17:42:03 -0400122
123[testenv:lower-constraints]
Doug Hellmann8669a512018-03-22 17:42:03 -0400124deps =
125 -c{toxinidir}/lower-constraints.txt
126 -r{toxinidir}/test-requirements.txt
127 -r{toxinidir}/requirements.txt