Pin black version to 23.12.1
[osm/RO.git] / tox.ini
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17
18 [tox]
19 envlist = black, flake8, safety, cover
20
21 [tox:jenkins]
22 toxworkdir = /tmp/.tox
23 setenv = XDG_CACHE_HOME=/tmp/.cache
24
25 [testenv]
26 usedevelop = True
27 basepython = python3
28 setenv = VIRTUAL_ENV={envdir}
29 PYTHONDONTWRITEBYTECODE = 1
30 deps = -r{toxinidir}/requirements.txt
31 parallel_show_output = true
32
33
34 #######################################################################################
35 [testenv:release_notes]
36 deps = reno
37 skip_install = true
38 allowlist_externals = bash
39 commands =
40 reno new {posargs:new_feature}
41 bash -c "sed -i -e '1 e head -16 tox.ini' releasenotes/notes/{posargs:new_feature}*.yaml"
42
43
44 #######################################################################################
45 [testenv:black]
46 deps = black==23.12.1
47 skip_install = true
48 commands =
49 black --check --diff NG-RO
50 black --check --diff RO-plugin
51 black --check --diff RO-SDN-arista_cloudvision
52 black --check --diff RO-SDN-dpb
53 black --check --diff RO-SDN-dynpac
54 black --check --diff RO-SDN-floodlight_openflow
55 black --check --diff RO-SDN-ietfl2vpn
56 black --check --diff RO-SDN-juniper_contrail
57 black --check --diff RO-SDN-odl_openflow
58 black --check --diff RO-SDN-onos_openflow
59 black --check --diff RO-SDN-onos_vpls
60 black --check --diff RO-VIM-aws
61 black --check --diff RO-VIM-azure
62 black --check --diff RO-VIM-openstack
63 black --check --diff RO-VIM-openvim
64 black --check --diff RO-VIM-vmware
65
66
67 #######################################################################################
68 [testenv:cover]
69 deps = {[testenv]deps}
70 -r{toxinidir}/requirements-dev.txt
71 -r{toxinidir}/requirements-test.txt
72 skip_install = true
73 allowlist_externals = sh
74 commands =
75 sh -c 'rm -f nosetests.xml'
76 coverage erase
77 # NG-RO
78 nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
79 sh -c 'mv .coverage .coverage_ng_ro'
80 # RO-plugin
81 # nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
82 # sh -c 'mv .coverage .coverage_ro_plugin'
83 # RO-SDN-arista_cloudvision
84 # nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
85 # sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
86 # RO-SDN-dpb
87 # nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
88 # sh -c 'mv .coverage .coverage_rosdn_dpb'
89 # RO-SDN-dynpac
90 # nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
91 # sh -c 'mv .coverage .coverage_rosdn_dynpac'
92 # RO-SDN-floodlight_openflow
93 # nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
94 # sh -c 'mv .coverage .coverage_rosdn_floodlightof'
95 # RO-SDN-ietfl2vpn
96 # nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
97 # sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
98 # RO-SDN-juniper_contrail
99 nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
100 sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
101 # RO-SDN-odl_openflow
102 # nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
103 # sh -c 'mv .coverage .coverage_rosdn_odlof'
104 # RO-SDN-onos_openflow
105 # nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
106 # sh -c 'mv .coverage .coverage_rosdn_onosof'
107 # RO-SDN-onos_vpls
108 # nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
109 # sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
110 # RO-VIM-aws
111 # nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
112 # sh -c 'mv .coverage .coverage_rovim_aws'
113 # RO-VIM-azure
114 # nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
115 # sh -c 'mv .coverage .coverage_rovim_azure'
116 # RO-VIM-openstack
117 # nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
118 # sh -c 'mv .coverage .coverage_rovim_openstack'
119 # RO-VIM-openvim
120 # nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
121 # sh -c 'mv .coverage .coverage_rovim_openvim'
122 # RO-VIM-vmware
123 # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
124 # sh -c 'mv .coverage .coverage_rovim_vmware'
125 # Combine results and generate reports
126 # coverage combine .coverage_ng_ro .coverage_ro_plugin .coverage_rosdn_arista_cloudvision .coverage_rosdn_dpb .coverage_rosdn_dynpac .coverage_rosdn_floodlightof .coverage_rosdn_ietfl2vpn .coverage_rosdn_juniper_contrail .coverage_rosdn_odlof .coverage_rosdn_onos_vpls .coverage_rosdn_onosof .coverage_rovim_aws .coverage_rovim_azure .coverage_rovim_openvim .coverage_rovim_gcp # .coverage_rovim_openstack .coverage_rovim_vmware
127 coverage combine .coverage_ng_ro .coverage_rosdn_juniper_contrail
128 coverage report --omit='*tests*'
129 coverage html -d ./cover --omit='*tests*'
130 coverage xml -o coverage.xml --omit='*tests*'
131
132 #######################################################################################
133 [testenv:flake8]
134 deps =
135 flake8==6.1.0
136 flake8-import-order
137 skip_install = true
138 commands =
139 flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
140 flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
141 flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
142 flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
143 flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
144 flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
145 flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
146 flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
147 flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
148 flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
149 flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
150 flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
151 flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
152 flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
153 flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
154 flake8 RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py RO-VIM-vmware/setup.py
155
156
157 #######################################################################################
158 [testenv:pylint]
159 deps = {[testenv]deps}
160 -r{toxinidir}/requirements-dev.txt
161 -r{toxinidir}/requirements-test.txt
162 pylint
163 skip_install = true
164 commands =
165 - pylint -E NG-RO/osm_ng_ro
166 - pylint -E RO-plugin/osm_ro_plugin
167 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
168 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
169 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
170 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
171 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
172 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
173 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
174 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
175 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
176 - pylint -E RO-VIM-aws/osm_rovim_aws
177 - pylint -E RO-VIM-azure/osm_rovim_azure
178 - pylint -E RO-VIM-openstack/osm_rovim_openstack
179 - pylint -E RO-VIM-openvim/osm_rovim_openvim
180 - pylint -E RO-VIM-vmware/osm_rovim_vmware
181
182
183 #######################################################################################
184 [testenv:safety]
185 setenv =
186 LC_ALL=C.UTF-8
187 LANG=C.UTF-8
188 deps = {[testenv]deps}
189 safety
190 skip_install = true
191 commands =
192 - safety check --full-report
193
194
195 #######################################################################################
196 [testenv:pip-compile]
197 deps = pip-tools==6.4.0
198 skip_install = true
199 allowlist_externals = bash
200 [
201 commands =
202 - bash -c "for file in requirements*.in ; do \
203 UNSAFE="" ; \
204 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
205 pip-compile -rU --no-header $UNSAFE $file ;\
206 out=`echo $file | sed 's/.in/.txt/'` ; \
207 sed -i -e '1 e head -16 tox.ini' $out ;\
208 done"
209 - bash -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
210
211
212 #######################################################################################
213 [testenv:dist_ng_ro]
214 deps = {[testenv]deps}
215 -r{toxinidir}/requirements-dist.txt
216 skip_install = true
217 allowlist_externals = sh
218 changedir = {toxinidir}/NG-RO
219 commands =
220 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
221 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
222 python3 setup.py --command-packages=stdeb.command sdist_dsc
223 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
224
225
226 #######################################################################################
227 [testenv:dist_ro_plugin]
228 deps = {[testenv]deps}
229 -r{toxinidir}/requirements-dist.txt
230 skip_install = true
231 allowlist_externals = sh
232 changedir = {toxinidir}/RO-plugin
233 commands =
234 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
235 python3 setup.py --command-packages=stdeb.command sdist_dsc
236 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
237
238
239 #######################################################################################
240 [testenv:dist_ro_sdn_arista_cloudvision]
241 deps = {[testenv]deps}
242 -r{toxinidir}/requirements-dist.txt
243 skip_install = true
244 allowlist_externals = sh
245 changedir = {toxinidir}/RO-SDN-arista_cloudvision
246 commands =
247 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
248 python3 setup.py --command-packages=stdeb.command sdist_dsc
249 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
250
251
252 #######################################################################################
253 [testenv:dist_ro_sdn_dpb]
254 deps = {[testenv]deps}
255 -r{toxinidir}/requirements-dist.txt
256 skip_install = true
257 allowlist_externals = sh
258 changedir = {toxinidir}/RO-SDN-dpb
259 commands =
260 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
261 python3 setup.py --command-packages=stdeb.command sdist_dsc
262 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
263
264
265 #######################################################################################
266 [testenv:dist_ro_sdn_dynpac]
267 deps = {[testenv]deps}
268 -r{toxinidir}/requirements-dist.txt
269 skip_install = true
270 allowlist_externals = sh
271 changedir = {toxinidir}/RO-SDN-dynpac
272 commands =
273 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
274 python3 setup.py --command-packages=stdeb.command sdist_dsc
275 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
276
277
278 #######################################################################################
279 [testenv:dist_ro_sdn_floodlight_of]
280 deps = {[testenv]deps}
281 -r{toxinidir}/requirements-dist.txt
282 skip_install = true
283 allowlist_externals = sh
284 changedir = {toxinidir}/RO-SDN-floodlight_openflow
285 commands =
286 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
287 python3 setup.py --command-packages=stdeb.command sdist_dsc
288 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
289
290
291 #######################################################################################
292 [testenv:dist_ro_sdn_ietfl2vpn]
293 deps = {[testenv]deps}
294 -r{toxinidir}/requirements-dist.txt
295 skip_install = true
296 allowlist_externals = sh
297 changedir = {toxinidir}/RO-SDN-ietfl2vpn
298 commands =
299 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
300 python3 setup.py --command-packages=stdeb.command sdist_dsc
301 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
302
303
304 #######################################################################################
305 [testenv:dist_ro_sdn_juniper_contrail]
306 deps = {[testenv]deps}
307 -r{toxinidir}/requirements-dist.txt
308 skip_install = true
309 allowlist_externals = sh
310 changedir = {toxinidir}/RO-SDN-juniper_contrail
311 commands =
312 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
313 python3 setup.py --command-packages=stdeb.command sdist_dsc
314 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
315
316
317 #######################################################################################
318 [testenv:dist_ro_sdn_odl_of]
319 deps = {[testenv]deps}
320 -r{toxinidir}/requirements-dist.txt
321 skip_install = true
322 allowlist_externals = sh
323 changedir = {toxinidir}/RO-SDN-odl_openflow
324 commands =
325 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
326 python3 setup.py --command-packages=stdeb.command sdist_dsc
327 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
328
329
330 #######################################################################################
331 [testenv:dist_ro_sdn_onos_of]
332 deps = {[testenv]deps}
333 -r{toxinidir}/requirements-dist.txt
334 skip_install = true
335 allowlist_externals = sh
336 changedir = {toxinidir}/RO-SDN-onos_openflow
337 commands =
338 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
339 python3 setup.py --command-packages=stdeb.command sdist_dsc
340 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
341
342
343 #######################################################################################
344 [testenv:dist_ro_sdn_onos_vpls]
345 deps = {[testenv]deps}
346 -r{toxinidir}/requirements-dist.txt
347 skip_install = true
348 allowlist_externals = sh
349 changedir = {toxinidir}/RO-SDN-onos_vpls
350 commands =
351 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
352 python3 setup.py --command-packages=stdeb.command sdist_dsc
353 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
354
355
356 #######################################################################################
357 [testenv:dist_ro_vim_aws]
358 deps = {[testenv]deps}
359 -r{toxinidir}/requirements-dist.txt
360 skip_install = true
361 allowlist_externals = sh
362 changedir = {toxinidir}/RO-VIM-aws
363 commands =
364 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
365 python3 setup.py --command-packages=stdeb.command sdist_dsc
366 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
367
368
369 #######################################################################################
370 [testenv:dist_ro_vim_azure]
371 deps = {[testenv]deps}
372 -r{toxinidir}/requirements-dist.txt
373 skip_install = true
374 allowlist_externals = sh
375 changedir = {toxinidir}/RO-VIM-azure
376 commands =
377 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
378 python3 setup.py --command-packages=stdeb.command sdist_dsc
379 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
380
381
382 #######################################################################################
383 [testenv:dist_ro_vim_openstack]
384 deps = {[testenv]deps}
385 -r{toxinidir}/requirements-dist.txt
386 skip_install = true
387 allowlist_externals = sh
388 changedir = {toxinidir}/RO-VIM-openstack
389 commands =
390 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
391 python3 setup.py --command-packages=stdeb.command sdist_dsc
392 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
393
394
395 #######################################################################################
396 [testenv:dist_ro_vim_openvim]
397 deps = {[testenv]deps}
398 -r{toxinidir}/requirements-dist.txt
399 skip_install = true
400 allowlist_externals = sh
401 changedir = {toxinidir}/RO-VIM-openvim
402 commands =
403 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
404 python3 setup.py --command-packages=stdeb.command sdist_dsc
405 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
406
407
408 #######################################################################################
409 [testenv:dist_ro_vim_vmware]
410 deps = {[testenv]deps}
411 -r{toxinidir}/requirements-dist.txt
412 skip_install = true
413 allowlist_externals = sh
414 changedir = {toxinidir}/RO-VIM-vmware
415 commands =
416 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
417 python3 setup.py --command-packages=stdeb.command sdist_dsc
418 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
419
420
421 #######################################################################################
422 [flake8]
423 ignore =
424 W291,
425 W293,
426 W503,
427 W605,
428 E123,
429 E125,
430 E203,
431 E226,
432 E241,
433 E501,
434 exclude =
435 .git,
436 __pycache__,
437 .tox,
438 max-line-length = 120
439 show-source = True
440 builtins = _
441 import-order-style = google