-
Notifications
You must be signed in to change notification settings - Fork 341
/
tox.ini
120 lines (104 loc) · 3.08 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[tox]
skipsdist = True
envlist = clean,ansible{2.12,2.13}-py{38,39,310}-{with_constraints,without_constraints},linters
# Tox4 supports labels which allow us to group the environments rather than dumping all commands into a single environment
labels =
format = flynt, black, isort
lint = complexity-report, ansible-lint, black-lint, isort-lint, flake8-lint, flynt-lint
units = ansible{2.12,2.13}-py{38,39,310}-{with_constraints,without_constraints}
[common]
format_dirs = {toxinidir}/plugins {toxinidir}/tests
[testenv]
description = Run the test-suite and generate a HTML coverage report
deps =
pytest
pytest-cov
ansible2.12: ansible-core>2.12,<2.13
ansible2.13: ansible-core>2.13,<2.14
!ansible2.12-!ansible2.13: ansible-core
pytest-ansible
-rtest-requirements.txt
with_constraints: -rtests/unit/constraints.txt
commands = pytest --cov-report html --cov plugins/callback --cov plugins/inventory --cov plugins/lookup --cov plugins/module_utils --cov plugins/modules --cov plugins/plugin_utils plugins {posargs:tests/}
[testenv:clean]
deps = coverage
skip_install = true
commands = coverage erase
[testenv:complexity-report]
description = Generate a HTML complexity report in the complexity directory
deps =
# See: https://github.com/lordmauve/flake8-html/issues/30
flake8>=3.3.0,<5.0.0
flake8-html
commands = -flake8 --select C90 --max-complexity 10 --format=html --htmldir={posargs:complexity} plugins
[testenv:ansible-lint]
deps =
ansible-lint >= 24.7.0
commands =
ansible-lint {toxinidir}/plugins
[testenv:black]
depends =
flynt, isort
deps =
black >=23.0, <24.0
commands =
black {[common]format_dirs}
[testenv:black-lint]
deps =
{[testenv:black]deps}
commands =
black -v --check --diff {[common]format_dirs}
[testenv:isort]
deps =
isort
commands =
isort {[common]format_dirs}
[testenv:isort-lint]
deps =
{[testenv:isort]deps}
commands =
isort --check-only --diff {[common]format_dirs}
[testenv:flake8-lint]
deps =
flake8
commands =
flake8 {posargs} {[common]format_dirs}
[testenv:pylint-lint]
# Additional pylint tests that ansible-test currently ignores
deps =
pylint
commands =
pylint \
--disable R,C,W,E \
--enable consider-using-dict-items,assignment-from-no-return,no-else-continue,no-else-break,simplifiable-if-statement,pointless-string-statement,redefined-outer-name,redefined-builtin \
{toxinidir}/plugins
[testenv:flynt]
deps =
flynt
commands =
flynt {[common]format_dirs}
[testenv:flynt-lint]
deps =
flynt
commands =
flynt --dry-run --fail-on-change {[common]format_dirs}
[testenv:linters]
deps =
{[testenv:black]deps}
{[testenv:isort]deps}
flake8
commands =
black -v --check {toxinidir}/plugins {toxinidir}/tests
isort --check-only --diff {toxinidir}/plugins {toxinidir}/tests
flake8 {posargs} {toxinidir}/plugins {toxinidir}/tests
[testenv:ansible-sanity]
deps =
git+https://github.com/ansible/ansible.git@milestone
commands =
ansible-test sanity
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
show-source = True
ignore = E123,E125,E203,E402,E501,E741,F401,F811,F841,W503
max-line-length = 160
builtins = _