121 lines
3.1 KiB
INI
121 lines
3.1 KiB
INI
[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 = _
|