blob: 310db7af34f79ac74f8a14d583811720b3771615 [file] [log] [blame]
sousaedu96abfc22021-02-18 14:57:01 +01001#######################################################################################
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]
sousaedu97508412021-11-29 09:28:15 +000019envlist = black, flake8, safety
sousaedu96abfc22021-02-18 14:57:01 +010020
21[tox:jenkins]
22toxworkdir = /tmp/.tox
23
24[testenv]
25usedevelop = True
26basepython = python3
27setenv = VIRTUAL_ENV={envdir}
28 PYTHONDONTWRITEBYTECODE = 1
29deps = -r{toxinidir}/requirements.txt
30parallel_show_output = true
31
32
33#######################################################################################
sousaedu1077bbd2021-04-15 01:18:59 +020034[testenv:release_notes]
35deps = reno
36skip_install = true
37commands =
38 reno new {posargs:new_feature}
39
40
41#######################################################################################
sousaedu96abfc22021-02-18 14:57:01 +010042[testenv:black]
43deps = black
44skip_install = true
45commands =
sousaedu97508412021-11-29 09:28:15 +000046 black --check --diff NG-RO
47 black --check --diff RO-plugin
48 black --check --diff RO-SDN-arista_cloudvision
49 black --check --diff RO-SDN-dpb
50 black --check --diff RO-SDN-dynpac
51 black --check --diff RO-SDN-floodlight_openflow
52 black --check --diff RO-SDN-ietfl2vpn
53 black --check --diff RO-SDN-juniper_contrail
54 black --check --diff RO-SDN-odl_openflow
55 black --check --diff RO-SDN-onos_openflow
56 black --check --diff RO-SDN-onos_vpls
57 black --check --diff RO-VIM-aws
58 black --check --diff RO-VIM-azure
sousaedu97508412021-11-29 09:28:15 +000059 black --check --diff RO-VIM-openstack
60 black --check --diff RO-VIM-openvim
61 black --check --diff RO-VIM-vmware
62 black --check --diff RO-VIM-gcp
63 black --check --diff integration-tests
sousaedu96abfc22021-02-18 14:57:01 +010064
65
66#######################################################################################
67[testenv:cover]
68deps = {[testenv]deps}
69 -r{toxinidir}/requirements-dev.txt
70 -r{toxinidir}/requirements-test.txt
71skip_install = true
72commands =
73 sh -c 'rm -f nosetests.xml'
74 coverage erase
75 # NG-RO
76 - nose2 -C --coverage NG-RO/osm_ng_ro
77 sh -c 'mv .coverage .coverage_ng_ro'
78 # RO-plugin
79 - nose2 -C --coverage RO-plugin/osm_ro_plugin
80 sh -c 'mv .coverage .coverage_ro_plugin'
81 # RO-SDN-arista_cloudvision
82 - nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
83 sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
84 # RO-SDN-dpb
85 - nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb
86 sh -c 'mv .coverage .coverage_rosdn_dpb'
87 # RO-SDN-dynpac
88 - nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac
89 sh -c 'mv .coverage .coverage_rosdn_dynpac'
90 # RO-SDN-floodlight_openflow
91 - nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
92 sh -c 'mv .coverage .coverage_rosdn_floodlightof'
93 # RO-SDN-ietfl2vpn
94 - nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
95 sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
96 # RO-SDN-juniper_contrail
97 - nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
98 sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
99 # RO-SDN-odl_openflow
100 - nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof
101 sh -c 'mv .coverage .coverage_rosdn_odlof'
102 # RO-SDN-onos_openflow
103 - nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof
104 sh -c 'mv .coverage .coverage_rosdn_onosof'
105 # RO-SDN-onos_vpls
106 - nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls
107 sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
108 # RO-VIM-aws
109 - nose2 -C --coverage RO-VIM-aws/osm_rovim_aws
110 sh -c 'mv .coverage .coverage_rovim_aws'
111 # RO-VIM-azure
112 - nose2 -C --coverage RO-VIM-azure/osm_rovim_azure
113 sh -c 'mv .coverage .coverage_rovim_azure'
sousaedu96abfc22021-02-18 14:57:01 +0100114 # RO-VIM-openstack
115 - nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
116 sh -c 'mv .coverage .coverage_rovim_openstack'
117 # RO-VIM-openvim
118 - nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim
119 sh -c 'mv .coverage .coverage_rovim_openvim'
120 # RO-VIM-vmware
121 - nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
122 sh -c 'mv .coverage .coverage_rovim_vmware'
gallardo34aa3a92021-10-08 11:50:00 +0000123 # RO-VIM-gcp
124 - nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp
125 sh -c 'mv .coverage .coverage_rovim_gcp'
sousaedu96abfc22021-02-18 14:57:01 +0100126 # Combine results and generate reports
sousaedu10250fb2021-12-10 14:53:11 +0000127 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
sousaedu96abfc22021-02-18 14:57:01 +0100128 coverage report --omit='*tests*'
129 coverage html -d ./cover --omit='*tests*'
130 coverage xml -o coverage.xml --omit='*tests*'
131whitelist_externals = sh
132
133
134#######################################################################################
135[testenv:flake8]
136deps = flake8
137skip_install = true
138commands =
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
sousaedu96abfc22021-02-18 14:57:01 +0100152 - 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
gallardo34aa3a92021-10-08 11:50:00 +0000155 - flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
gallardo90ba8032021-11-11 10:58:29 +0000156 - flake8 integration-tests/
sousaedu96abfc22021-02-18 14:57:01 +0100157
158
159#######################################################################################
160[testenv:pylint]
161deps = {[testenv]deps}
162 -r{toxinidir}/requirements-dev.txt
163 -r{toxinidir}/requirements-test.txt
164 pylint
165skip_install = true
166commands =
167 - pylint -E NG-RO/osm_ng_ro
168 - pylint -E RO-plugin/osm_ro_plugin
169 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
170 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
171 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
172 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
173 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
174 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
175 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
176 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
177 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
178 - pylint -E RO-VIM-aws/osm_rovim_aws
179 - pylint -E RO-VIM-azure/osm_rovim_azure
sousaedu96abfc22021-02-18 14:57:01 +0100180 - pylint -E RO-VIM-openstack/osm_rovim_openstack
181 - pylint -E RO-VIM-openvim/osm_rovim_openvim
182 - pylint -E RO-VIM-vmware/osm_rovim_vmware
gallardo34aa3a92021-10-08 11:50:00 +0000183 - pylint -E RO-VIM-gcp/osm_rovim_gcp
sousaedu96abfc22021-02-18 14:57:01 +0100184
185
186#######################################################################################
187[testenv:safety]
188setenv =
189 LC_ALL=C.UTF-8
190 LANG=C.UTF-8
191deps = {[testenv]deps}
192 safety
193skip_install = true
194commands =
195 - safety check --full-report
196
197
198#######################################################################################
199[testenv:pip-compile]
200deps = pip-tools==5.5.0
sousaedubecd0832021-04-08 00:16:18 +0200201skip_install = true
sousaedu96abfc22021-02-18 14:57:01 +0100202commands =
sousaedubecd0832021-04-08 00:16:18 +0200203 - sh -c "for file in requirements*.in ; do pip-compile -rU --no-header $file ;\
204 out=`echo $file | sed 's/.in/.txt/'` ; \
205 sed -i -e '1 e head -16 tox.ini' $out ;\
206 done"
sousaedu10250fb2021-12-10 14:53:11 +0000207 - sh -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
sousaedu96abfc22021-02-18 14:57:01 +0100208whitelist_externals = sh
209
210
211#######################################################################################
212[testenv:dist_ng_ro]
213deps = {[testenv]deps}
214 -r{toxinidir}/requirements-dist.txt
215skip_install = true
216changedir = {toxinidir}/NG-RO
217commands =
218 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
219 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
220 python3 setup.py --command-packages=stdeb.command sdist_dsc
221 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
222whitelist_externals = sh
223
224#######################################################################################
225[testenv:dist_ro_plugin]
226deps = {[testenv]deps}
227 -r{toxinidir}/requirements-dist.txt
228skip_install = true
229changedir = {toxinidir}/RO-plugin
230commands =
231 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
232 python3 setup.py --command-packages=stdeb.command sdist_dsc
233 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
234whitelist_externals = sh
235
236#######################################################################################
237[testenv:dist_ro_sdn_arista_cloudvision]
238deps = {[testenv]deps}
239 -r{toxinidir}/requirements-dist.txt
240skip_install = true
241changedir = {toxinidir}/RO-SDN-arista_cloudvision
242commands =
243 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
244 python3 setup.py --command-packages=stdeb.command sdist_dsc
245 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
246whitelist_externals = sh
247
248#######################################################################################
249[testenv:dist_ro_sdn_dpb]
250deps = {[testenv]deps}
251 -r{toxinidir}/requirements-dist.txt
252skip_install = true
253changedir = {toxinidir}/RO-SDN-dpb
254commands =
255 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
256 python3 setup.py --command-packages=stdeb.command sdist_dsc
257 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
258whitelist_externals = sh
259
260#######################################################################################
261[testenv:dist_ro_sdn_dynpac]
262deps = {[testenv]deps}
263 -r{toxinidir}/requirements-dist.txt
264skip_install = true
265changedir = {toxinidir}/RO-SDN-dynpac
266commands =
267 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
268 python3 setup.py --command-packages=stdeb.command sdist_dsc
269 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
270whitelist_externals = sh
271
272#######################################################################################
273[testenv:dist_ro_sdn_floodlight_of]
274deps = {[testenv]deps}
275 -r{toxinidir}/requirements-dist.txt
276skip_install = true
277changedir = {toxinidir}/RO-SDN-floodlight_openflow
278commands =
279 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
280 python3 setup.py --command-packages=stdeb.command sdist_dsc
281 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
282whitelist_externals = sh
283
284#######################################################################################
285[testenv:dist_ro_sdn_ietfl2vpn]
286deps = {[testenv]deps}
287 -r{toxinidir}/requirements-dist.txt
288skip_install = true
289changedir = {toxinidir}/RO-SDN-ietfl2vpn
290commands =
291 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
292 python3 setup.py --command-packages=stdeb.command sdist_dsc
293 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
294whitelist_externals = sh
295
296#######################################################################################
297[testenv:dist_ro_sdn_juniper_contrail]
298deps = {[testenv]deps}
299 -r{toxinidir}/requirements-dist.txt
300skip_install = true
301changedir = {toxinidir}/RO-SDN-juniper_contrail
302commands =
303 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
304 python3 setup.py --command-packages=stdeb.command sdist_dsc
305 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
306whitelist_externals = sh
307
308#######################################################################################
309[testenv:dist_ro_sdn_odl_of]
310deps = {[testenv]deps}
311 -r{toxinidir}/requirements-dist.txt
312skip_install = true
313changedir = {toxinidir}/RO-SDN-odl_openflow
314commands =
315 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
316 python3 setup.py --command-packages=stdeb.command sdist_dsc
317 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
318whitelist_externals = sh
319
320#######################################################################################
321[testenv:dist_ro_sdn_onos_of]
322deps = {[testenv]deps}
323 -r{toxinidir}/requirements-dist.txt
324skip_install = true
325changedir = {toxinidir}/RO-SDN-onos_openflow
326commands =
327 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
328 python3 setup.py --command-packages=stdeb.command sdist_dsc
329 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
330whitelist_externals = sh
331
332#######################################################################################
333[testenv:dist_ro_sdn_onos_vpls]
334deps = {[testenv]deps}
335 -r{toxinidir}/requirements-dist.txt
336skip_install = true
337changedir = {toxinidir}/RO-SDN-onos_vpls
338commands =
339 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
340 python3 setup.py --command-packages=stdeb.command sdist_dsc
341 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
342whitelist_externals = sh
343
344#######################################################################################
345[testenv:dist_ro_vim_aws]
346deps = {[testenv]deps}
347 -r{toxinidir}/requirements-dist.txt
348skip_install = true
349changedir = {toxinidir}/RO-VIM-aws
350commands =
351 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
352 python3 setup.py --command-packages=stdeb.command sdist_dsc
353 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
354whitelist_externals = sh
355
356#######################################################################################
357[testenv:dist_ro_vim_azure]
358deps = {[testenv]deps}
359 -r{toxinidir}/requirements-dist.txt
360skip_install = true
361changedir = {toxinidir}/RO-VIM-azure
362commands =
363 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
364 python3 setup.py --command-packages=stdeb.command sdist_dsc
365 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
366whitelist_externals = sh
367
368#######################################################################################
sousaedu96abfc22021-02-18 14:57:01 +0100369[testenv:dist_ro_vim_openstack]
370deps = {[testenv]deps}
371 -r{toxinidir}/requirements-dist.txt
372skip_install = true
373changedir = {toxinidir}/RO-VIM-openstack
374commands =
375 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
376 python3 setup.py --command-packages=stdeb.command sdist_dsc
377 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
378whitelist_externals = sh
379
380#######################################################################################
381[testenv:dist_ro_vim_openvim]
382deps = {[testenv]deps}
383 -r{toxinidir}/requirements-dist.txt
384skip_install = true
385changedir = {toxinidir}/RO-VIM-openvim
386commands =
387 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
388 python3 setup.py --command-packages=stdeb.command sdist_dsc
389 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
390whitelist_externals = sh
391
392#######################################################################################
393[testenv:dist_ro_vim_vmware]
394deps = {[testenv]deps}
395 -r{toxinidir}/requirements-dist.txt
396skip_install = true
397changedir = {toxinidir}/RO-VIM-vmware
398commands =
399 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
400 python3 setup.py --command-packages=stdeb.command sdist_dsc
401 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
402whitelist_externals = sh
403
404#######################################################################################
gallardo34aa3a92021-10-08 11:50:00 +0000405[testenv:dist_ro_vim_gcp]
406deps = {[testenv]deps}
407 -r{toxinidir}/requirements-dist.txt
408skip_install = true
409changedir = {toxinidir}/RO-VIM-gcp
410commands =
411 sh -c 'rm -rf deb_dist dist osm_rovim_gcp.egg-info osm_rovim_gcp*.tar.gz'
412 python3 setup.py --command-packages=stdeb.command sdist_dsc
413 sh -c 'cd deb_dist/osm-rovim-gcp*/ && dpkg-buildpackage -rfakeroot -uc -us'
414whitelist_externals = sh
415
416
417#######################################################################################
sousaedu96abfc22021-02-18 14:57:01 +0100418[flake8]
419ignore =
420 W291,
421 W293,
422 W503,
423 W605,
424 E123,
425 E125,
426 E203,
427 E226,
428 E241
429exclude =
430 .git,
431 __pycache__,
432 .tox,
433max-line-length = 120
434show-source = True
435builtins = _