blob: 9f72c4f857786ca883563703764429cd12f752b6 (
plain)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
[tox]
envlist =
fix
py310
py39
py38
py37
py36
cov
type
docs
pkg_meta
isolated_build = true
skip_missing_interpreters = true
minversion = 3.21
[testenv]
description = run the tests with pytest
passenv =
PYTEST_*
SSL_CERT_FILE
setenv =
COVERAGE_FILE = {env:COVERAGE_FILE:{toxworkdir}{/}.coverage.{envname}}
COVERAGE_PROCESS_START = {toxinidir}{/}setup.cfg
extras =
testing
commands =
pytest {tty:--color=yes} {posargs: \
--junitxml {toxworkdir}{/}junit.{envname}.xml --cov {envsitepackagesdir}{/}tox --cov {toxinidir}{/}tests \
--cov-config=setup.cfg --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
--cov-report html:{envtmpdir}{/}htmlcov \
--cov-report xml:{toxworkdir}{/}coverage.{envname}.xml \
-n={env:PYTEST_XDIST_PROC_NR:auto} \
tests --durations 5 --run-integration}
package = wheel
wheel_build_env = .pkg
[testenv:fix]
description = format the code base to adhere to our styles, and complain about what we cannot do automatically
passenv =
{[testenv]passenv}
PROGRAMDATA
basepython = python3.9
skip_install = true
deps =
pre-commit>=2.13
commands =
pre-commit run --all-files --show-diff-on-failure {tty:--color=always} {posargs}
python -c 'print(r"hint: run {envbindir}{/}pre-commit install to add checks as pre-commit hook")'
[testenv:cov]
description = merge existing coverage reports and report coverage diff against DIFF_MASTER env-var (default upstream/rewrite)
passenv =
{[testenv]passenv}
DIFF_AGAINST
setenv =
COVERAGE_FILE = {toxworkdir}/.coverage
skip_install = true
deps =
covdefaults>=1.2
coverage>=5.5
diff_cover>=6.2
parallel_show_output = true
commands =
coverage combine
coverage report -m
coverage xml -o {toxworkdir}{/}coverage.xml
coverage html -d {toxworkdir}{/}htmlcov
diff-cover --compare-branch {env:DIFF_AGAINST:upstream/rewrite} {toxworkdir}{/}coverage.xml
depends =
py310
py39
py38
py37
py36
[testenv:type]
description = run type check on code base
setenv =
{tty:MYPY_FORCE_COLOR = 1}
deps =
mypy==0.910
types-cachetools
types-chardet
types-filelock
types-freezegun
types-toml
commands =
mypy src/tox
mypy tests
[testenv:docs]
description = build documentation
basepython = python3.9
extras =
docs
commands =
sphinx-build -d "{envtmpdir}{/}doctree" docs "{toxworkdir}{/}docs_out" --color -b html {posargs}
python -c 'print(r"documentation available under file://{toxworkdir}{/}docs_out{/}index.html")'
[testenv:pkg_meta]
description = check that the long description is valid
basepython = python3.9
skip_install = true
deps =
build[virtualenv]>=0.5
check-wheel-contents>=0.3.2
twine>=3.4
commands =
python -m build -o {envtmpdir} -s -w .
twine check {envtmpdir}{/}*
check-wheel-contents --no-config {envtmpdir}
[testenv:release]
description = do a release, required posarg of the version number
basepython = python3.9
skip_install = true
deps =
gitpython>=3.1
packaging>=21
towncrier>=21.3
commands =
python {toxinidir}/tasks/release.py --version {posargs}
[testenv:dev]
description = dev environment with all deps at {envdir}
usedevelop = true
deps =
{[testenv:release]deps}
extras =
docs
testing
commands =
python -m pip list --format=columns
python -c "print(r'{envpython}')"
|