[tox] requires = tox>=4.19 env_list = unit-py3{9-13} integration-py3{9-13}-sphinx{5-8} integration-py3{9-13}-sphinx{5-8}-pytest8 lint format [testenv] deps = . [testenv:lint] description = run type check on code base labels = static deps = mypy commands = python3 -m mypy src tests --junit-xml test-reports/{env_name}.xml [testenv:audit] description = run type check on code base labels = audit deps = pip-audit commands = pip-audit . [testenv:format] description = run type check on code base labels = static deps = black commands = black --check src tests [testenv:unit-py3{9-13}] description = run type check on code base labels = unit deps = {[testenv]deps} pytest commands = pytest tests/unit --junitxml=test-reports/{env_name}.xml {posargs} [testenv:integration-py3{9-13}-sphinx{5-7}] description = run sphinx 5-7 integration tests labels = integration deps = {[testenv]deps} sphinx5: sphinx>=5.0,<=6.0 sphinx6: sphinx>=6.0,<=7.0 sphinx7: sphinx>=7.0,<=8.0 pytest commands = pytest tests/integration --junitxml=test-reports/{env_name}.xml {posargs} [testenv:integration-py3{10-13}-sphinx8] description = run sphinx 8 integration tests labels = integration deps = {[testenv]deps} sphinx8: sphinx>=8.0,<=9.0 pytest commands = pytest tests/integration --junitxml=test-reports/{env_name}.xml {posargs} [testenv:integration-py3{10-13}-sphinx{5-8}-pytest8] description = run pytest 8 testing integration tests (excluding Python 3.9) labels = integration deps = {[testenv]deps} sphinx5: sphinx>=5.0,<=6.0 sphinx6: sphinx>=6.0,<=7.0 sphinx7: sphinx>=7.0,<=8.0 sphinx8: sphinx>=8.0,<=9.0 pytest8: pytest>=8.0,<=9.0 commands = pytest tests/integration -m pytest --junitxml=test-reports/{env_name}.xml {posargs}