[tox] envlist = clean, build, check, py310-cover, py310-nocov, py311-cover, py311-nocov, py312-cover, py312-nocov, py313-cover, py313-nocov, report, docs [testenv] basepython = {clean,check,report,coveralls,codecov,docs,spell,build}: python3.13 py310: python3.10 py311: python3.11 py312: python3.12 py313: python3.13 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes passenv = * deps = behave coverage setuptools PyHamcrest commands = {posargs:behave tests/features} [testenv:spell] setenv = SPELLCHECK=1 commands = sphinx-build -b spelling docs build/docs skip_install = true usedevelop = false deps = -r{toxinidir}/docs/requirements.txt sphinxcontrib-spelling pyenchant [testenv:docs] deps = -r{toxinidir}/docs/requirements.txt commands = sphinx-build {posargs:-E} -b html docs build/docs #sphinx-build -b linkcheck docs build/docs sphinx-build docs build/docs [testenv:bootstrap] deps = jinja2 matrix skip_install = true usedevelop = false commands = python ci/bootstrap.py passenv = * [testenv:build] commands = python setup.py sdist bdist_wheel --universal [testenv:py310-cover] basepython = {env:TOXPYTHON:python3.10} setenv = {[testenv]setenv} WITH_COVERAGE=yes usedevelop = true commands = {posargs:coverage run -m behave tests/features} deps = {[testenv]deps} coverage [testenv:py310-nocov] basepython = {env:TOXPYTHON:python3.10} [testenv:py311-cover] basepython = {env:TOXPYTHON:python3.11} setenv = {[testenv]setenv} WITH_COVERAGE=yes usedevelop = true commands = {posargs:coverage run -m behave tests/features} deps = {[testenv]deps} coverage [testenv:py311-nocov] basepython = {env:TOXPYTHON:python3.11} [testenv:py312-cover] basepython = {env:TOXPYTHON:python3.12} setenv = {[testenv]setenv} WITH_COVERAGE=yes usedevelop = true commands = {posargs:coverage run -m behave tests/features} deps = {[testenv]deps} coverage [testenv:py312-nocov] basepython = {env:TOXPYTHON:python3.12} [testenv:check] deps = docutils check-manifest readme-renderer pygments isort twine black mypy skip_install = false usedevelop = false commands = twine check dist/* check-manifest {toxinidir} isort --verbose --check-only --diff src tests setup.py black --check src tests setup.py mypy --install-types --non-interactive --check-untyped-defs src setup.py [testenv:coveralls] deps = coveralls skip_install = true usedevelop = false commands = - coverage combine --append coverage report coveralls [] [testenv:codecov] deps = codecov skip_install = true usedevelop = false commands = - coverage combine --append coverage report coverage xml --ignore-errors codecov [] [testenv:report] deps = coverage skip_install = true usedevelop = false commands = - coverage combine --append coverage report coverage html [testenv:clean] commands = coverage erase skip_install = true usedevelop = false deps = coverage [testenv:py313-nocov] basepython = {env:TOXPYTHON:python3.13} [testenv:py313-cover] basepython = {env:TOXPYTHON:python3.13} setenv = {[testenv]setenv} WITH_COVERAGE=yes usedevelop = true commands = {posargs:coverage run -m behave tests/features} deps = {[testenv]deps} coverage