Repository navigation
Expand file tree
/
Copy pathtox.ini
More file actions
174 lines (158 loc) · 4.51 KB
/
Copy pathtox.ini
File metadata and controls
174 lines (158 loc) · 4.51 KB
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
[tox]
minversion = 4.28.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}
constraints =
{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
dependency_groups =
test
commands =
stestr run {posargs}
stestr slowest
[testenv:functional{,-py310,-py311,-py312,-py313,-py314}]
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
# Other 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.
dependency_groups =
test
typing
deps =
pre-commit
commands =
pre-commit run -a
{[testenv:mypy]commands}
[testenv:mypy]
description =
Run type checks.
dependency_groups =
test
typing
commands =
mypy --cache-dir="{envdir}/mypy_cache" -p openstack {posargs}
[testenv:venv]
description =
Run specified command in a virtual environment with all dependencies installed.
dependency_groups =
test
doc
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_*
dependency_groups =
ansible
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
[testenv:docs]
description =
Build documentation in HTML format.
dependency_groups =
doc
commands =
sphinx-build -W --keep-going -b html -j auto doc/source/ doc/build/html
whereto doc/build/html/.htaccess doc/test/redirect-tests.txt
[testenv:pdf-docs]
description =
Build documentation in PDF format.
dependency_groups =
doc
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.
dependency_groups =
doc
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
[hacking]
import_exceptions =
collections.abc
typing
[doc8]
extensions = .rst, .yaml