-
Notifications
You must be signed in to change notification settings - Fork 68
/
tox.ini
167 lines (135 loc) · 4.88 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
161
162
163
164
165
166
167
[tox]
minversion = 2.0
skipsdist = True
envlist = bindep,docs,linters,bandit,functional
sitepackages = True
[testenv]
usedevelop = True
install_command =
pip3 install -c{env:UPPER_CONSTRAINTS_FILE} {opts} {packages} --isolated
deps =
-r{toxinidir}/test-requirements.txt
requests[security]
commands =
/usr/bin/find . -type f -name "*.pyc" -delete
passenv = *
allowlist_externals =
bash
setenv =
BINDEP_FILE={toxinidir}/bindep.txt
PYTHONUNBUFFERED=1
TEST_IDEMPOTENCE=false
VIRTUAL_ENV={envdir}
WORKING_DIR={toxinidir}
# RPC Gate variables
RE_JOB_SCENARIO={env:RE_JOB_SCENARIO:ussuri}
# bug#1682108
PYTHONPATH={envsitepackagesdir}
### OSA specific call back files
# Set the checkout to any supported tag, branch, or sha.
OSA_TESTS_CHECKOUT=stable/wallaby
#OSA_REQUIREMENTS_CHECKOUT=b9a565570f224a5b812b70d75bdf6a623436767f
UPPER_CONSTRAINTS_FILE=https://opendev.org/openstack/requirements/raw/branch/{env:OSA_TESTS_CHECKOUT}/upper-constraints.txt
OSA_TEST_DEPS=https://opendev.org/openstack/openstack-ansible-tests/raw/branch/{env:OSA_TESTS_CHECKOUT}/test-ansible-deps.txt
[testenv:bindep]
# Deps is overwrite with requests[security] on purpose
install_command =
pip3 install {opts} {packages} --isolated
deps =
requests[security]
commands =
bash -c "{toxinidir}/run-bindep.sh"
[testenv:bandit]
# Ignore B404 about importing subprocess and B410 about importing lxml.
# We're knowingly and intentionally using those and don't need a warning
# about mere usage alone. Specific warnings about those packages will
# still come through as they're found.
commands =
# Until bandit has the ability to log issues at lower severities than it's
# configured to pass/fail based on, we need to run bandit twice. Run it
# once with no severity or confidence level set to get everything, but ignore
# that exit status. Then run it again on the highest severity and confidence
# levels and get our pass/fail status from that.
# This is reported to bandit at https://github.com/PyCQA/bandit/issues/341
# Tell bandit to skip test B501 (B404 and B410 already existed)
# B501 can be skipped as we self sign our certs so this test will always fail
- bandit -s B404,B410,B501 -i -l -r playbooks/
bandit -s B404,B410,B501 -iii -lll -r playbooks/
[testenv:docs]
commands =
bash -c "rm -rf doc/build"
doc8 doc
python3 setup.py build_sphinx
[testenv:check-docs]
commands =
pip3 install -r doc/maas-checks/source/requirements.txt
bash -c "rm -rf doc/maas-checks/build"
sphinx-build -a -E -W -b html doc/maas-checks/source doc/maas-checks/build/html
[doc8]
# Settings for doc8:
extensions = .rst
[testenv:releasenotes]
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
# environment used by the -infra templated docs job
[testenv:venv]
commands =
{posargs}
[testenv:tests_clone]
commands =
bash -c "if [ ! -d "{toxinidir}/tests/common" ]; then \
git clone https://opendev.org/openstack/openstack-ansible-tests {toxinidir}/tests/common; \
pushd {toxinidir}/tests/common; \
git checkout {env:OSA_TESTS_CHECKOUT}; \
popd; \
fi"
[testenv:pep8]
commands =
{[testenv:tests_clone]commands}
bash -c "sed -i -e 's/\(xargs flake8 --verbose.*$\)/grep -v tests\/common \\\n | \1/g' {toxinidir}/tests/common/test-pep8.sh"
bash -c "{toxinidir}/tests/common/test-pep8.sh"
[flake8]
# Ignores the following rules due to how ansible modules work in general
# F403 'from ansible.module_utils.basic import *' used;
# unable to detect undefined names
ignore=F403,E731
[testenv:bashate]
commands =
{[testenv:tests_clone]commands}
bash -c "{toxinidir}/tests/common/test-bashate.sh"
[testenv:ansible]
deps =
{[testenv]deps}
-r{env:OSA_TEST_DEPS}
[testenv:ansible-syntax]
deps =
{[testenv:ansible]deps}
commands =
{[testenv:tests_clone]commands}
bash -c "cp {toxinidir}/tests/common/.gitreview ./"
bash -c "PIP_OPTS=' --isolated' {toxinidir}/tests/common/test-ansible-syntax.sh"
[testenv:ansible-lint]
deps =
{[testenv:ansible]deps}
commands =
{[testenv:tests_clone]commands}
bash -c "cp {toxinidir}/tests/common/.gitreview ./"
bash -c "PIP_OPTS=' --isolated' {toxinidir}/tests/common/test-ansible-lint.sh"
[testenv:linters]
deps =
{[testenv:ansible]deps}
commands =
{[testenv:tests_clone]commands}
{[testenv:pep8]commands}
{[testenv:bashate]commands}
{[testenv:ansible-lint]commands}
{[testenv:ansible-syntax]commands}
{[testenv:docs]commands}
[testenv:functional]
install_command =
pip3 install {opts} {packages} --isolated --upgrade --force-reinstall
commands =
{[testenv:bindep]commands}
{[testenv:tests_clone]commands}
bash -c "{toxinidir}/tests/aio-create.sh"
bash -c "{toxinidir}/tests/test-ansible-functional.sh"