Run perltidy on debug tools
[transportpce.git] / tox.ini
1 [tox]
2 minversion = 3.7.0
3 envlist = buildcontroller
4      testsPCE
5      sims121
6      build_karaf_tests121
7      tests121
8      sims221
9      build_karaf_tests221
10      tests_tapi
11      tests221
12      sims71
13      build_karaf_tests71
14      tests71
15      build_karaf_tests_hybrid
16      tests_hybrid
17      buildlighty
18      docs
19      docs-linkcheck
20      checkbashisms
21      pre-commit
22      pylint
23 skipsdist = true
24 setupdir = tests/
25
26 [testenv]
27 passenv = LAUNCHER
28      USE_LIGHTY
29      USE_SIMS
30      NO_ODL_STARTUP
31      http_proxy
32      HTTP_PROXY
33      https_proxy
34      HTTPS_PROXY
35      no_proxy
36      NO_PROXY
37      OLM_TIMER1
38      OLM_TIMER2
39 setenv =
40 #    USE_LIGHTY=True,
41     OLM_TIMER1=3000
42     OLM_TIMER2=2000
43
44 usedevelop = true
45 basepython = python3
46 deps =
47   -r{toxinidir}/tests/requirements.txt
48   -r{toxinidir}/tests/test-requirements.txt
49   setuptools>=7.0
50 changedir = {toxinidir}/tests
51 parallel_show_output = true
52
53 [testenv:buildcontroller]
54 allowlist_externals = build_controller.sh
55 commands =
56   ./build_controller.sh
57
58 [testenv:buildlighty]
59 allowlist_externals = build.sh
60 depends = buildcontroller,tests_hybrid
61 changedir = {toxinidir}/lighty
62 commands =
63   - ./build.sh
64
65 [testenv:sims]
66 passenv = USE_SIMS
67 allowlist_externals = install_lightynode.sh
68 depends = buildcontroller
69 commands =
70   ./install_lightynode.sh {posargs:}
71
72 [testenv:sims121]
73 passenv = USE_SIMS
74 allowlist_externals = install_sims.sh
75 depends = buildcontroller
76 # sims profiles does not strictly depends on buildcontroller
77 # but this dependency avoids race condition in the gate
78 commands =
79   ./install_sims.sh 1.2.1
80
81 [testenv:sims221]
82 passenv = USE_SIMS
83 allowlist_externals = install_sims.sh
84 depends = buildcontroller
85 commands =
86   ./install_sims.sh 2.2.1
87
88 [testenv:sims71]
89 passenv = USE_SIMS
90 allowlist_externals = install_sims.sh
91 depends = buildcontroller
92 commands =
93   ./install_sims.sh 7.1
94
95 [testenv:testsPCE]
96 depends = buildcontroller
97 #the following lines retrieve unofficial package of GNPy with REST support from Orange opensource Gitlab repo
98 setenv =
99     PIP_EXTRA_INDEX_URL = https://gitlab.com/api/v4/projects/33090323/packages/pypi/simple
100 #    USE_LIGHTY=True
101 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
102 deps =
103   -r{toxinidir}/tests/requirements.txt
104   -r{toxinidir}/tests/test-requirements.txt
105   setuptools>=7.0
106   gnpy4tpce==2.4.7
107 allowlist_externals = launch_tests.sh
108 passenv = LAUNCHER
109     USE_LIGHTY
110     NO_ODL_STARTUP
111     USE_ODL_RESTCONF_VERSION
112 basepython = python3
113 commands =
114   ./launch_tests.sh pce {posargs:}
115
116 [testenv:build_karaf_tests121]
117 depends = buildcontroller
118 # testsPCE dependency is only here to chain tests in the gate and avoid resources starvation
119 allowlist_externals = launch_tests.sh
120 passenv = USE_LIGHTY
121 setenv =
122 #    USE_LIGHTY=True
123     USE_ODL_ALT_KARAF_ENV=./karaf121.env
124     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf121
125 commands =
126   ./build_karaf_for_tests.sh
127
128 [testenv:tests121]
129 depends = buildcontroller,build_karaf_tests121,sims121,testsPCE
130 # testsPCE dependency is only here to chain tests in the gate and avoid resources starvation
131 allowlist_externals = launch_tests.sh
132 passenv = LAUNCHER
133     USE_LIGHTY
134     USE_SIMS
135     USE_ODL_RESTCONF_VERSION
136 setenv =
137 #    USE_LIGHTY=True
138 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
139     USE_ODL_ALT_KARAF_ENV=./karaf121.env
140     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf121
141 commands =
142   ./launch_tests.sh 1.2.1 {posargs:}
143 # By default, all tests in the folder transportpce_tests/1.2.1/ are run.
144 # Though, a restricted list of tests can be passed as argument to 'tox -e tests121'.
145 # For example, 'tox -e tests121 portmapping' will run only the portmapping test.
146 # and 'tox -e tests121 "portmapping pce"' will run the portmapping and pce tests.
147 # Additionnally, a different launcher command than 'nosetests --with-xunit' can be
148 # used by exporting the variable LAUNCHER. For example 'export LAUNCHER="python3"'
149 # which is more verbose than nose or 'export LAUNCHER="ls -l"' to only list script
150 # files attributes.
151
152 [testenv:build_karaf_tests221]
153 depends = buildcontroller
154 # testsPCE dependency is only here to chain tests in the gate and avoid resources starvation
155 allowlist_externals = launch_tests.sh
156 passenv = USE_LIGHTY
157 setenv =
158 #    USE_LIGHTY=True
159     USE_ODL_ALT_KARAF_ENV=./karaf221.env
160     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf221
161 commands =
162   ./build_karaf_for_tests.sh
163
164 [testenv:launch]
165 depends = buildcontroller,build_karaf_tests221,sims,tests71
166 # tests71 dependency is only here to chain tests in the gate and avoid ressources starvation
167 allowlist_externals = launch.sh
168 passenv = LAUNCHER
169     USE_LIGHTY
170     NO_ODL_STARTUP
171     USE_ODL_RESTCONF_VERSION
172 setenv =
173 #    USE_LIGHTY=True
174 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
175     USE_ODL_ALT_KARAF_ENV=./karaf221.env
176     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf221
177 commands =
178   ./launch.sh
179
180
181 [testenv:tests221]
182 depends = buildcontroller,build_karaf_tests221,sims221,tests71
183 # tests71 dependency is only here to chain tests in the gate and avoid ressources starvation
184 allowlist_externals = launch_tests.sh
185 passenv = LAUNCHER
186     USE_LIGHTY
187     USE_SIMS
188     NO_ODL_STARTUP
189     USE_ODL_RESTCONF_VERSION
190 setenv =
191 #    USE_LIGHTY=True
192 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
193     USE_ODL_ALT_KARAF_ENV=./karaf221.env
194     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf221
195 commands =
196   ./launch_tests.sh 2.2.1 {posargs:}
197
198 [testenv:build_karaf_tests71]
199 depends = buildcontroller
200 # testsPCE dependency is only here to chain tests in the gate and avoid resources starvation
201 allowlist_externals = launch_tests.sh
202 passenv = USE_LIGHTY
203 setenv =
204 #    USE_LIGHTY=True
205     USE_ODL_ALT_KARAF_ENV=./karaf71.env
206     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf71
207 commands =
208   ./build_karaf_for_tests.sh
209
210 [testenv:tests71]
211 depends = buildcontroller,build_karaf_tests71,sims71,tests_tapi
212 allowlist_externals = launch_tests.sh
213 passenv = LAUNCHER
214     USE_LIGHTY
215     USE_SIMS
216     NO_ODL_STARTUP
217     USE_ODL_RESTCONF_VERSION
218 setenv =
219 #    USE_LIGHTY=True
220 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
221     USE_ODL_ALT_KARAF_ENV=./karaf71.env
222     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf71
223 commands =
224   ./launch_tests.sh 7.1 {posargs:}
225
226 [testenv:build_karaf_tests_hybrid]
227 depends = buildcontroller
228 allowlist_externals = launch_tests.sh
229 passenv = USE_LIGHTY
230 setenv =
231 #    USE_LIGHTY=True
232     USE_ODL_ALT_KARAF_ENV=./karaf121.env
233     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf_hybrid
234 commands =
235   ./build_karaf_for_tests.sh
236
237 [testenv:tests_hybrid]
238 depends = buildcontroller,build_karaf_tests_hybrid,sims121,sims221,sims71,tests121,tests221,tests71
239 #the last dependency is to avoid temporarily concurrent ressources problem in parallel mode
240 allowlist_externals = launch_tests.sh
241 passenv = LAUNCHER
242     USE_LIGHTY
243     USE_SIMS
244     NO_ODL_STARTUP
245     USE_ODL_RESTCONF_VERSION
246 setenv =
247 #    USE_LIGHTY=True
248 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
249     USE_ODL_ALT_KARAF_ENV=./karaf121.env
250     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf_hybrid
251 commands =
252 #  nosetests --with-xunit transportpce_tests/hybrid/test01_device_change_notifications.py
253   ./launch_tests.sh hybrid {posargs:}
254
255 [testenv:tests_tapi]
256 depends = buildcontroller,build_karaf_tests221,sims221
257 allowlist_externals = launch_tests.sh
258 #                      add_tapi_feature_to_tests221.sh
259 passenv = LAUNCHER
260     USE_LIGHTY
261     USE_SIMS
262     NO_ODL_STARTUP
263     OLM_TIMER1
264     OLM_TIMER2
265     USE_ODL_RESTCONF_VERSION
266 setenv =
267 #    USE_LIGHTY=True
268 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
269     USE_ODL_ALT_KARAF_ENV=./karaf221.env
270     USE_ODL_ALT_KARAF_INSTALL_DIR=karaf221
271     INSTALL_TAPI=True
272     OLM_TIMER1=3000
273     OLM_TIMER2=2000
274
275 commands =
276 #  ./add_tapi_feature_to_tests221.sh
277   ./launch_tests.sh tapi {posargs:}
278
279 [testenv:with_docker]
280 depends = buildcontroller,sims221
281 allowlist_externals = launch_tests.sh dockercmd.sh
282 passenv = LAUNCHER
283     USE_LIGHTY
284     USE_SIMS
285     NO_ODL_STARTUP
286     USE_ODL_RESTCONF_VERSION
287 #    OLM_TIMER1
288 #    OLM_TIMER2
289 setenv =
290     OLM_TIMER1=3000
291     OLM_TIMER2=2000
292     INSTALL_TAPI=True
293     INSTALL_NBINOTIFICATIONS=True
294 #    USE_ODL_RESTCONF_VERSION=draft-bierman02
295
296 commands =
297   ./dockercmd.sh run -d -p 2181:2181 -p 9092:9092 --env ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 --name tpce_kafka1 teivah/kafka:2.0.0
298   ./launch_tests.sh with_docker {posargs:}
299   ./dockercmd.sh container rm -f tpce_kafka1
300
301 [testenv:docs]
302 passenv = http_proxy
303     HTTP_PROXY
304     https_proxy
305     HTTPS_PROXY
306     no_proxy
307     NO_PROXY
308 basepython = python3
309 deps = -rdocs/requirements.txt
310 commands =
311     sphinx-build -q -W --keep-going -b html -n -d {envtmpdir}/doctrees ../docs/ {toxinidir}/docs/_build/html
312
313 [testenv:docs-linkcheck]
314 passenv = http_proxy
315     HTTP_PROXY
316     https_proxy
317     HTTPS_PROXY
318     no_proxy
319     NO_PROXY
320 basepython = python3
321 deps = -rdocs/requirements.txt
322 commands = sphinx-build -q -b linkcheck -d {envtmpdir}/doctrees ../docs/ {toxinidir}/docs/_build/linkcheck
323
324 [testenv:checkbashisms]
325 deps =
326 allowlist_externals = sh
327                       checkbashisms
328                       sudo
329                       find
330 commands =
331     sh -c 'command checkbashisms>/dev/null || sudo yum install -y devscripts-checkbashisms || sudo yum install -y devscripts-minimal || sudo yum install -y devscripts \
332         || sudo yum install -y https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/x86_64/os/Packages/d/devscripts-checkbashisms-2.19.6-2.fc31.x86_64.rpm \
333         || (echo "checkbashisms command not found - please install it \
334              (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )" >&2 && exit 1)'
335     find . -not -path '*/\.*' -name *.sh -exec checkbashisms -f  \{\} +
336
337 [testenv:spelling]
338 basepython = python3
339 deps =
340     -rdocs/requirements.txt
341     sphinxcontrib-spelling
342     PyEnchant
343 commands = sphinx-build -b spelling -d {envtmpdir}/doctrees ../docs/ {toxinidir}/docs/_build/spelling
344
345 [testenv:autopep8]
346 basepython = python3
347 deps = autopep8
348 commands =
349     autopep8 --max-line-length 120 --in-place --recursive transportpce_tests/
350
351 [testenv:pylint_full]
352 basepython = python3
353 deps = pylint>=2.6.0
354 allowlist_externals = find
355 commands =
356     find transportpce_tests/ -name *.py -exec pylint --fail-under=9.22 --max-line-length=120 --disable=missing-docstring --module-rgx="([a-z0-9_]+$)|([0-9.]{1,30}$)" --method-rgx="(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$" --variable-rgx="[a-zA-Z_][a-zA-Z0-9_]{1,30}$" --reports=y --score=y  --output-format=colorized  \{\} +
357
358 [testenv:pylint]
359 basepython = python3
360 deps = pylint>=2.6.0
361 allowlist_externals = find
362 commands =
363     find transportpce_tests/ -name *.py -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code --module-rgx="([a-z0-9_]+$)|([0-9.]{1,30}$)" --method-rgx="(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$" --variable-rgx="[a-zA-Z_][a-zA-Z0-9_]{1,30}$" \{\} +
364
365 [testenv:pyang]
366 basepython = python3
367 deps = pyang
368 allowlist_externals = find
369 commands =
370     pyang --version
371     find ../api/ -name target -prune -o -name *.yang -exec pyang --lint --canonical --max-line-length=120 -p../api/src/main/yang/:../ordmodels/common/src/main/yang/:../ordmodels/service/src/main/yang/:../tapimodels/src/main/yang/ \{\} +
372 #find ../api/ ../ordmodels/ ../tapimodels/ -name target -prune -o -name *.yang -exec pyang --lint --canonical --max-line-length=120 -p../api/src/main/yang/:../ordmodels/common/src/main/yang/:../ordmodels/service/src/main/yang/:../tapimodels/src/main/yang/ \{\} +
373
374 [testenv:pyangformat]
375 basepython = python3
376 deps = pyang
377 allowlist_externals = sh
378 commands =
379     pyang --version
380     sh -c 'find ../api/ -name target -prune -o -name *.yang -print | while read -r fname; do pyang -f yang --yang-canonical --yang-remove-unused-imports --max-line-length=120 --keep-comments -p../api/src/main/yang/:../ordmodels/common/src/main/yang/:../ordmodels/service/src/main/yang/:../tapimodels/src/main/yang/ "$fname"  -o /tmp/tmpfile.$$ && mv /tmp/tmpfile.$$ "$fname";done'
381
382 [testenv:pre-commit-install]
383 basepython = python3
384 deps = pre-commit
385 commands =
386     pre-commit install
387     pre-commit install --hook-type commit-msg
388
389 [testenv:pre-commit-uninstall]
390 basepython = python3
391 deps = pre-commit
392 commands =
393     pre-commit uninstall
394     pre-commit uninstall --hook-type commit-msg
395
396 [testenv:pre-commit-autoupdate]
397 basepython = python3
398 deps = pre-commit
399 commands =
400     pre-commit autoupdate
401
402 [testenv:pre-commit]
403 basepython = python3
404 deps = pre-commit
405 passenv = HOME
406 commands =
407     pre-commit run --all-files --show-diff-on-failure
408     pre-commit run gitlint-ci --hook-stage manual
409
410 [testenv:gitlint]
411 basepython = python3
412 deps = gitlint
413 commands =
414     gitlint --config ../.gitlint
415
416 [testenv:allure-report-init]
417 basepython = python3
418 deps = allure-pytest>=2.10.0
419 # allure is under Apache License 2.0
420 allowlist_externals =
421     mkdir
422     sed
423 commands =
424     mkdir -p allure-report
425     sed -i_ '$a\allure-pytest # Apache License 2.0' ./test-requirements.txt
426
427 [testenv:allure-report-serve]
428 basepython = python3
429 allowlist_externals =
430     allure
431 commands =
432     allure serve "allure-report"