-
Notifications
You must be signed in to change notification settings - Fork 200
/
tox.ini
160 lines (146 loc) · 4.76 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
[tox]
minversion = 4.3.0
envlist = pep8,py3
[testenv]
description =
Run unit tests.
passenv =
OS_*
OPENSTACKSDK_*
setenv =
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=C
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands =
stestr run {posargs}
stestr slowest
[testenv:functional{,-py39,-py310,-py311,-py312}]
description =
Run functional tests.
# Some jobs (especially heat) takes longer, therefore increase default timeout
# This timeout should not be smaller, than the longest individual timeout
setenv =
{[testenv]setenv}
OS_TEST_TIMEOUT=600
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
OPENSTACKSDK_EXAMPLE_CONFIG_KEY=functional
OPENSTACKSDK_FUNC_TEST_TIMEOUT_PROJECT_CLEANUP=1200
commands =
stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
stestr slowest
# Acceptance tests are the ones running on real clouds
[testenv:acceptance-regular-user]
description =
Run acceptance tests.
# This env intends to test functions of a regular user without admin privileges
# Some jobs (especially heat) takes longer, therefore increase default timeout
# This timeout should not be smaller, than the longest individual timeout
setenv =
{[testenv]setenv}
OS_TEST_TIMEOUT=600
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
# OPENSTACKSDK_DEMO_CLOUD and OS_CLOUD should point to the cloud to test
# Othee clouds are explicitly set empty to let tests detect absense
OPENSTACKSDK_DEMO_CLOUD_ALT=
OPENSTACKSDK_OPERATOR_CLOUD=
commands =
stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs} --include-list include-acceptance-regular-user.txt
stestr slowest
[testenv:pep8]
description =
Run style checks.
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:venv]
description =
Run specified command in a virtual environment with all dependencies installed.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = {posargs}
[testenv:debug]
description =
Run specified tests through oslo_debug_helper, which allows use of pdb.
# allow 1 year, or 31536000 seconds, to debug a test before it times out
setenv =
OS_TEST_TIMEOUT=31536000
allowlist_externals = find
commands =
find . -type f -name "*.pyc" -delete
oslo_debug_helper -t openstack/tests {posargs}
[testenv:cover]
description =
Run unit tests and generate coverage report.
setenv =
{[testenv]setenv}
PYTHON=coverage run --source openstack --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:ansible]
description =
Run ansible tests.
# Need to pass some env vars for the Ansible playbooks
passenv =
HOME
USER
ANSIBLE_VAR_*
deps =
{[testenv]deps}
ansible
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
[testenv:docs]
description =
Build documentation in HTML format.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W --keep-going -b html -j auto doc/source/ doc/build/html
[testenv:pdf-docs]
description =
Build documentation in PDF format.
deps = {[testenv:docs]deps}
allowlist_externals =
make
commands =
sphinx-build -W --keep-going -b latex -j auto doc/source/ doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
description =
Build release note documentation in HTML format.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W --keep-going -b html -j auto releasenotes/source releasenotes/build/html
[flake8]
# We only enable the hacking (H) and openstacksdk (O) checks
select = H,O
# H301 Black will put commas after imports that can't fit on one line
# H404 Docstrings don't always start with a newline
# H405 Multiline docstrings are okay
ignore = H301,H403,H404,H405
show-source = True
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,openstack/_services_mixin.py
[flake8:local-plugins]
extension =
O300 = checks:assert_no_setupclass
O310 = checks:assert_no_deprecated_exceptions
paths = ./openstack/_hacking
[doc8]
extensions = .rst, .yaml