Feature 11001: Robot framework linting for E2E tests
[osm/tests.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, cover, flake8, pylint, rflint, safety
20
21 [tox:jenkins]
22 toxworkdir = /tmp/.tox
23
24 [testenv]
25 usedevelop = True
26 basepython = python3.10
27 setenv = VIRTUAL_ENV={envdir}
28 PYTHONDONTWRITEBYTECODE = 1
29 deps = -r{toxinidir}/requirements.txt
30 parallel_show_output = true
31
32 #######################################################################################
33 [testenv:black]
34 deps = black
35 skip_install = true
36 commands =
37 black --check --diff robot-systest --fast
38
39
40 #######################################################################################
41 [testenv:cover]
42 commands =
43 sh -c 'echo No unit tests'
44 allowlist_externals = sh
45
46
47 #######################################################################################
48 [testenv:flake8]
49 deps = flake8
50 commands =
51 flake8 robot-systest
52
53
54 #######################################################################################
55 [testenv:pylint]
56 deps = {[testenv]deps}
57 -r{toxinidir}/requirements-dev.txt
58 pylint
59 commands =
60 pylint -E robot-systest
61
62
63 #######################################################################################
64 [testenv:rflint]
65 changedir = {toxinidir}/robot-systest
66 deps = {[testenv]deps}
67 -r{toxinidir}/requirements-dev.txt
68 robotframework-lint
69 robotframework-robocop
70 commands =
71 rflint --ignore LineTooLong --ignore TooFewTestSteps --ignore TooManyTestCases \
72 --ignore TooManyTestSteps --ignore TooFewKeywordSteps \
73 testsuite lib resources
74 robocop --configure return_status:quality_gate:E=0:W=0:I=0 --exclude 050*,0701,0923 .
75
76
77 #######################################################################################
78 [testenv:safety]
79 setenv =
80 LC_ALL=C.UTF-8
81 LANG=C.UTF-8
82 deps = {[testenv]deps}
83 safety
84 commands =
85 - safety check --full-report
86
87
88 #######################################################################################
89 [testenv:pip-compile]
90 deps = pip-tools==6.13.0
91 skip_install = true
92 allowlist_externals = bash
93 [
94 commands =
95 - bash -c "for file in requirements*.in ; do \
96 UNSAFE="" ; \
97 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
98 pip-compile --resolver=backtracking -rU --no-header $UNSAFE $file ;\
99 out=`echo $file | sed 's/.in/.txt/'` ; \
100 sed -i -e '1 e head -16 tox.ini' $out ;\
101 done"
102
103
104 #######################################################################################
105 [flake8]
106 ignore =
107 W291,
108 W293,
109 E123,
110 E125,
111 E226,
112 E241
113 exclude =
114 .git,
115 __pycache__,
116 .tox,
117 max-line-length = 120
118 show-source = True
119 builtins = _