-
Notifications
You must be signed in to change notification settings - Fork 81
/
tox.ini
70 lines (61 loc) · 1.99 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
[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 = black
lint = complexity-report, black-lint, flake8-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:black]
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:flake8-lint]
deps =
flake8
commands =
flake8 {posargs} {[common]format_dirs}
[testenv:linters]
deps =
{[testenv:black]deps}
flake8
commands =
black -v --check {toxinidir}/plugins {toxinidir}/tests
flake8 {posargs} {toxinidir}/plugins {toxinidir}/tests
[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 = _