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