summaryrefslogtreecommitdiffstats
path: root/tox.ini
diff options
context:
space:
mode:
Diffstat (limited to 'tox.ini')
-rw-r--r--tox.ini119
1 files changed, 119 insertions, 0 deletions
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..834e8e7
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,119 @@
+[tox]
+minversion = 2.4.0
+envlist = docs,flake8,mypy,twine,py{36,37,38,39,310,311},du{14,15,16,17,18,19}
+isolated_build = True
+
+[testenv]
+usedevelop = True
+passenv =
+ https_proxy
+ http_proxy
+ no_proxy
+ COLORTERM
+ PERL
+ PERL5LIB
+ PYTEST_ADDOPTS
+ DO_EPUBCHECK
+ EPUBCHECK_PATH
+ TERM
+description =
+ py{36,37,38,39,310,311}: Run unit tests against {envname}.
+ du{14,15,16,17,18,19}: Run unit tests with the given version of docutils.
+deps =
+ du14: docutils==0.14.*
+ du15: docutils==0.15.*
+ du16: docutils==0.16.*
+ du17: docutils==0.17.*
+ du18: docutils==0.18.*
+ du19: docutils==0.19.*
+extras =
+ test
+setenv =
+ PYTHONWARNINGS = all
+ PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:} --color yes
+commands=
+ python -X dev -X warn_default_encoding -m pytest --durations 25 {posargs}
+
+[testenv:du-latest]
+commands =
+ python -m pip install "git+https://repo.or.cz/docutils.git#subdirectory=docutils" --no-warn-conflicts
+ {[testenv]commands}
+
+[testenv:flake8]
+basepython = python3
+description =
+ Run style checks.
+whitelist_externals =
+ flake8
+extras =
+ lint
+commands =
+ flake8 {posargs}
+
+[testenv:isort]
+basepython = python3
+description =
+ Run import sorting checks.
+whitelist_externals =
+ isort
+extras =
+ lint
+commands =
+ isort --check-only --diff .
+
+[testenv:mypy]
+basepython = python3
+description =
+ Run type checks.
+extras =
+ lint
+commands=
+ mypy sphinx/
+
+[testenv:docs]
+basepython = python3
+description =
+ Build documentation.
+extras =
+ docs
+commands =
+ python -X dev -X warn_default_encoding -m sphinx -M html ./doc ./build/sphinx -W --keep-going
+
+[testenv:docslint]
+basepython = python3
+description =
+ Lint documentation.
+extras =
+ lint
+commands =
+ sphinx-lint --enable line-too-long --max-line-length 85 CHANGES CONTRIBUTING.rst README.rst doc/
+
+[testenv:docs-live]
+basepython = python3
+description =
+ Build documentation.
+extras =
+ docs
+deps =
+ sphinx-autobuild
+commands =
+ sphinx-autobuild ./doc ./build/sphinx/
+
+[testenv:twine]
+basepython = python3
+description =
+ Lint package.
+deps =
+ twine
+ build
+commands =
+ python -m build .
+ twine check dist/*
+
+[testenv:bindep]
+description =
+ Install binary dependencies.
+deps =
+ bindep
+commands =
+ bindep test