43b1a92a11f9987140232c3c080f5116fab4d14c
[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 whitelist_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
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 black --check --diff RO-VIM-gcp
66 black --check --diff integration-tests
67
68
69 #######################################################################################
70 [testenv:cover]
71 deps = {[testenv]deps}
72 -r{toxinidir}/requirements-dev.txt
73 -r{toxinidir}/requirements-test.txt
74 skip_install = true
75 whitelist_externals = sh
76 commands =
77 sh -c 'rm -f nosetests.xml'
78 coverage erase
79 # NG-RO
80 nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
81 sh -c 'mv .coverage .coverage_ng_ro'
82 # RO-plugin
83 # nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
84 # sh -c 'mv .coverage .coverage_ro_plugin'
85 # RO-SDN-arista_cloudvision
86 # nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
87 # sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
88 # RO-SDN-dpb
89 # nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
90 # sh -c 'mv .coverage .coverage_rosdn_dpb'
91 # RO-SDN-dynpac
92 # nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
93 # sh -c 'mv .coverage .coverage_rosdn_dynpac'
94 # RO-SDN-floodlight_openflow
95 # nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
96 # sh -c 'mv .coverage .coverage_rosdn_floodlightof'
97 # RO-SDN-ietfl2vpn
98 # nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
99 # sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
100 # RO-SDN-juniper_contrail
101 # nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
102 # sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
103 # RO-SDN-odl_openflow
104 # nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
105 # sh -c 'mv .coverage .coverage_rosdn_odlof'
106 # RO-SDN-onos_openflow
107 # nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
108 # sh -c 'mv .coverage .coverage_rosdn_onosof'
109 # RO-SDN-onos_vpls
110 # nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
111 # sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
112 # RO-VIM-aws
113 # nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
114 # sh -c 'mv .coverage .coverage_rovim_aws'
115 # RO-VIM-azure
116 # nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
117 # sh -c 'mv .coverage .coverage_rovim_azure'
118 # RO-VIM-openstack
119 nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
120 sh -c 'mv .coverage .coverage_rovim_openstack'
121 # RO-VIM-openvim
122 # nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
123 # sh -c 'mv .coverage .coverage_rovim_openvim'
124 # RO-VIM-vmware
125 # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
126 # sh -c 'mv .coverage .coverage_rovim_vmware'
127 # RO-VIM-gcp
128 # nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp -s RO-VIM-gcp/osm_rovim_gcp
129 # sh -c 'mv .coverage .coverage_rovim_gcp'
130 # Combine results and generate reports
131 # 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
132 coverage combine .coverage_ng_ro .coverage_rovim_openstack
133 coverage report --omit='*tests*'
134 coverage html -d ./cover --omit='*tests*'
135 coverage xml -o coverage.xml --omit='*tests*'
136
137
138 #######################################################################################
139 [testenv:flake8]
140 deps =
141 flake8
142 flake8-import-order
143 skip_install = true
144 commands =
145 flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
146 flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
147 flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
148 flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
149 flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
150 flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
151 flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
152 flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
153 flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
154 flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
155 flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
156 flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
157 flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
158 flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
159 flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
160 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
161 flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
162 flake8 integration-tests/
163
164
165 #######################################################################################
166 [testenv:pylint]
167 deps = {[testenv]deps}
168 -r{toxinidir}/requirements-dev.txt
169 -r{toxinidir}/requirements-test.txt
170 pylint
171 skip_install = true
172 commands =
173 - pylint -E NG-RO/osm_ng_ro
174 - pylint -E RO-plugin/osm_ro_plugin
175 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
176 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
177 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
178 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
179 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
180 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
181 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
182 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
183 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
184 - pylint -E RO-VIM-aws/osm_rovim_aws
185 - pylint -E RO-VIM-azure/osm_rovim_azure
186 - pylint -E RO-VIM-openstack/osm_rovim_openstack
187 - pylint -E RO-VIM-openvim/osm_rovim_openvim
188 - pylint -E RO-VIM-vmware/osm_rovim_vmware
189 - pylint -E RO-VIM-gcp/osm_rovim_gcp
190
191
192 #######################################################################################
193 [testenv:safety]
194 setenv =
195 LC_ALL=C.UTF-8
196 LANG=C.UTF-8
197 deps = {[testenv]deps}
198 safety
199 skip_install = true
200 commands =
201 - safety check --full-report
202
203
204 #######################################################################################
205 [testenv:pip-compile]
206 deps = pip-tools==6.6.2
207 skip_install = true
208 whitelist_externals = bash
209 [
210 commands =
211 - bash -c "for file in requirements*.in ; do \
212 UNSAFE="" ; \
213 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
214 pip-compile -rU --no-header $UNSAFE $file ;\
215 out=`echo $file | sed 's/.in/.txt/'` ; \
216 sed -i -e '1 e head -16 tox.ini' $out ;\
217 done"
218 - bash -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
219
220
221 #######################################################################################
222 [testenv:dist_ng_ro]
223 deps = {[testenv]deps}
224 -r{toxinidir}/requirements-dist.txt
225 skip_install = true
226 whitelist_externals = sh
227 changedir = {toxinidir}/NG-RO
228 commands =
229 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
230 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
231 python3 setup.py --command-packages=stdeb.command sdist_dsc
232 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
233
234
235 #######################################################################################
236 [testenv:dist_ro_plugin]
237 deps = {[testenv]deps}
238 -r{toxinidir}/requirements-dist.txt
239 skip_install = true
240 whitelist_externals = sh
241 changedir = {toxinidir}/RO-plugin
242 commands =
243 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
244 python3 setup.py --command-packages=stdeb.command sdist_dsc
245 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
246
247
248 #######################################################################################
249 [testenv:dist_ro_sdn_arista_cloudvision]
250 deps = {[testenv]deps}
251 -r{toxinidir}/requirements-dist.txt
252 skip_install = true
253 whitelist_externals = sh
254 changedir = {toxinidir}/RO-SDN-arista_cloudvision
255 commands =
256 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
257 python3 setup.py --command-packages=stdeb.command sdist_dsc
258 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
259
260
261 #######################################################################################
262 [testenv:dist_ro_sdn_dpb]
263 deps = {[testenv]deps}
264 -r{toxinidir}/requirements-dist.txt
265 skip_install = true
266 whitelist_externals = sh
267 changedir = {toxinidir}/RO-SDN-dpb
268 commands =
269 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
270 python3 setup.py --command-packages=stdeb.command sdist_dsc
271 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
272
273
274 #######################################################################################
275 [testenv:dist_ro_sdn_dynpac]
276 deps = {[testenv]deps}
277 -r{toxinidir}/requirements-dist.txt
278 skip_install = true
279 whitelist_externals = sh
280 changedir = {toxinidir}/RO-SDN-dynpac
281 commands =
282 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
283 python3 setup.py --command-packages=stdeb.command sdist_dsc
284 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
285
286
287 #######################################################################################
288 [testenv:dist_ro_sdn_floodlight_of]
289 deps = {[testenv]deps}
290 -r{toxinidir}/requirements-dist.txt
291 skip_install = true
292 whitelist_externals = sh
293 changedir = {toxinidir}/RO-SDN-floodlight_openflow
294 commands =
295 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
296 python3 setup.py --command-packages=stdeb.command sdist_dsc
297 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
298
299
300 #######################################################################################
301 [testenv:dist_ro_sdn_ietfl2vpn]
302 deps = {[testenv]deps}
303 -r{toxinidir}/requirements-dist.txt
304 skip_install = true
305 whitelist_externals = sh
306 changedir = {toxinidir}/RO-SDN-ietfl2vpn
307 commands =
308 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
309 python3 setup.py --command-packages=stdeb.command sdist_dsc
310 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
311
312
313 #######################################################################################
314 [testenv:dist_ro_sdn_juniper_contrail]
315 deps = {[testenv]deps}
316 -r{toxinidir}/requirements-dist.txt
317 skip_install = true
318 whitelist_externals = sh
319 changedir = {toxinidir}/RO-SDN-juniper_contrail
320 commands =
321 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
322 python3 setup.py --command-packages=stdeb.command sdist_dsc
323 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
324
325
326 #######################################################################################
327 [testenv:dist_ro_sdn_odl_of]
328 deps = {[testenv]deps}
329 -r{toxinidir}/requirements-dist.txt
330 skip_install = true
331 whitelist_externals = sh
332 changedir = {toxinidir}/RO-SDN-odl_openflow
333 commands =
334 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
335 python3 setup.py --command-packages=stdeb.command sdist_dsc
336 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
337
338
339 #######################################################################################
340 [testenv:dist_ro_sdn_onos_of]
341 deps = {[testenv]deps}
342 -r{toxinidir}/requirements-dist.txt
343 skip_install = true
344 whitelist_externals = sh
345 changedir = {toxinidir}/RO-SDN-onos_openflow
346 commands =
347 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
348 python3 setup.py --command-packages=stdeb.command sdist_dsc
349 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
350
351
352 #######################################################################################
353 [testenv:dist_ro_sdn_onos_vpls]
354 deps = {[testenv]deps}
355 -r{toxinidir}/requirements-dist.txt
356 skip_install = true
357 whitelist_externals = sh
358 changedir = {toxinidir}/RO-SDN-onos_vpls
359 commands =
360 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
361 python3 setup.py --command-packages=stdeb.command sdist_dsc
362 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
363
364
365 #######################################################################################
366 [testenv:dist_ro_vim_aws]
367 deps = {[testenv]deps}
368 -r{toxinidir}/requirements-dist.txt
369 skip_install = true
370 whitelist_externals = sh
371 changedir = {toxinidir}/RO-VIM-aws
372 commands =
373 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
374 python3 setup.py --command-packages=stdeb.command sdist_dsc
375 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
376
377
378 #######################################################################################
379 [testenv:dist_ro_vim_azure]
380 deps = {[testenv]deps}
381 -r{toxinidir}/requirements-dist.txt
382 skip_install = true
383 whitelist_externals = sh
384 changedir = {toxinidir}/RO-VIM-azure
385 commands =
386 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
387 python3 setup.py --command-packages=stdeb.command sdist_dsc
388 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
389
390
391 #######################################################################################
392 [testenv:dist_ro_vim_openstack]
393 deps = {[testenv]deps}
394 -r{toxinidir}/requirements-dist.txt
395 skip_install = true
396 whitelist_externals = sh
397 changedir = {toxinidir}/RO-VIM-openstack
398 commands =
399 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
400 python3 setup.py --command-packages=stdeb.command sdist_dsc
401 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
402
403
404 #######################################################################################
405 [testenv:dist_ro_vim_openvim]
406 deps = {[testenv]deps}
407 -r{toxinidir}/requirements-dist.txt
408 skip_install = true
409 whitelist_externals = sh
410 changedir = {toxinidir}/RO-VIM-openvim
411 commands =
412 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
413 python3 setup.py --command-packages=stdeb.command sdist_dsc
414 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
415
416
417 #######################################################################################
418 [testenv:dist_ro_vim_vmware]
419 deps = {[testenv]deps}
420 -r{toxinidir}/requirements-dist.txt
421 skip_install = true
422 whitelist_externals = sh
423 changedir = {toxinidir}/RO-VIM-vmware
424 commands =
425 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
426 python3 setup.py --command-packages=stdeb.command sdist_dsc
427 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
428
429
430 #######################################################################################
431 [testenv:dist_ro_vim_gcp]
432 deps = {[testenv]deps}
433 -r{toxinidir}/requirements-dist.txt
434 skip_install = true
435 whitelist_externals = sh
436 changedir = {toxinidir}/RO-VIM-gcp
437 commands =
438 sh -c 'rm -rf deb_dist dist osm_rovim_gcp.egg-info osm_rovim_gcp*.tar.gz'
439 python3 setup.py --command-packages=stdeb.command sdist_dsc
440 sh -c 'cd deb_dist/osm-rovim-gcp*/ && dpkg-buildpackage -rfakeroot -uc -us'
441
442
443 #######################################################################################
444 [flake8]
445 ignore =
446 W291,
447 W293,
448 W503,
449 W605,
450 E123,
451 E125,
452 E203,
453 E226,
454 E241,
455 E501,
456 exclude =
457 .git,
458 __pycache__,
459 .tox,
460 max-line-length = 120
461 show-source = True
462 builtins = _
463 import-order-style = google