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 changedir = {toxinidir}/robot-systest
57 deps = {[testenv]deps}
58 -r{toxinidir}/requirements-dev.txt
59 pylint
60 commands =
61 pylint -E .
62
63
64 #######################################################################################
65 [testenv:rflint]
66 changedir = {toxinidir}/robot-systest
67 deps = {[testenv]deps}
68 -r{toxinidir}/requirements-dev.txt
69 robotframework-lint
70 robotframework-robocop
71 commands =
72 rflint --ignore LineTooLong --ignore TooFewTestSteps --ignore TooManyTestCases \
73 --ignore TooManyTestSteps --ignore TooFewKeywordSteps \
74 testsuite lib resources
75 robocop --configure return_status:quality_gate:E=0:W=0:I=0 --exclude 050*,0701,0923 .
76
77
78 #######################################################################################
79 [testenv:safety]
80 setenv =
81 LC_ALL=C.UTF-8
82 LANG=C.UTF-8
83 deps = {[testenv]deps}
84 safety
85 commands =
86 - safety check --full-report
87
88
89 #######################################################################################
90 [testenv:pip-compile]
91 deps = pip-tools==6.13.0
92 skip_install = true
93 allowlist_externals = bash
94 [
95 commands =
96 - bash -c "for file in requirements*.in ; do \
97 UNSAFE="" ; \
98 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
99 pip-compile --resolver=backtracking -rU --no-header $UNSAFE $file ;\
100 out=`echo $file | sed 's/.in/.txt/'` ; \
101 sed -i -e '1 e head -16 tox.ini' $out ;\
102 done"
103
104
105 #######################################################################################
106 [flake8]
107 ignore =
108 W291,
109 W293,
110 E123,
111 E125,
112 E226,
113 E241
114 exclude =
115 .git,
116 __pycache__,
117 .tox,
118 max-line-length = 120
119 show-source = True
120 builtins = _