forked from pypa/virtualenv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
163 lines (149 loc) · 4.44 KB
/
tox.ini
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
[tox]
minversion = 3.14.0
envlist =
fix_lint,
py38,
py37,
py36,
py35,
py34,
py27,
pypy,
pypy3,
coverage,
readme,
docs,
isolated_build = true
skip_missing_interpreters = true
[testenv]
description = run tests with {basepython}
deps =
pip >= 20.0.2
setenv =
COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
COVERAGE_PROCESS_START = {toxinidir}/.coveragerc
_COVERAGE_SRC = {envsitepackagesdir}/virtualenv
PYTHONIOENCODING=utf-8
PYTHONWARNINGS=ignore:DEPRECATION::pip._internal.cli.base_command
passenv = https_proxy http_proxy no_proxy HOME PYTEST_* PIP_* CI_RUN TERM
extras = testing
install_command = python -m pip install {opts} {packages} --disable-pip-version-check
commands =
python -c 'from os.path import sep; file = open(r"{envsitepackagesdir}\{\}coverage-virtualenv.pth".format(sep), "w"); file.write("import coverage; coverage.process_startup()"); file.close()'
python -m coverage erase
python -m coverage run\
-m pytest \
--junitxml {toxworkdir}/junit.{envname}.xml \
--timeout 30 \
tests {posargs:--int}
python -m coverage combine
python -m coverage report
[testenv:coverage]
description = [run locally after tests]: combine coverage data and create report;
generates a diff coverage against origin/master (can be changed by setting DIFF_AGAINST env var)
deps =
{[testenv]deps}
coverage >= 5.0.1, <6
diff_cover
extras =
skip_install = True
passenv = DIFF_AGAINST
setenv =
COVERAGE_FILE={toxworkdir}/.coverage
commands =
python -m coverage combine
python -m coverage report --show-missing
python -m coverage xml -o {toxworkdir}/coverage.xml
python -m coverage html -d {toxworkdir}/htmlcov
diff-cover --compare-branch {env:DIFF_AGAINST:origin/master} {toxworkdir}/coverage.xml
depends =
py38,
py37,
py36,
py35,
py34,
py27,
pypy,
pypy3,
parallel_show_output = True
[testenv:docs]
basepython = python3.8
description = build documentation
extras = docs
commands =
python -c 'import glob; import subprocess; subprocess.call(["proselint"] + glob.glob("docs/*.rst") + glob.glob("docs/**/*.rst"))'
sphinx-build -d "{envtmpdir}/doctree" docs "{toxworkdir}/docs_out" --color -b html {posargs}
python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))'
[testenv:readme]
description = check that the long description is valid (need for PyPI)
deps =
{[testenv]deps}
twine >= 1.12.1
skip_install = true
extras =
commands =
pip wheel -w {envtmpdir}/build --no-deps .
twine check {envtmpdir}/build/*
[testenv:upgrade]
description = upgrade pip/wheels/setuptools to latest
skip_install = true
deps =
black
passenv = UPGRADE_ADVISORY
changedir = {toxinidir}/tasks
commands = python upgrade_wheels.py
[testenv:fix_lint]
description = format the code base to adhere to our styles, and complain about what we cannot do automatically
basepython = python3.8
passenv = *
deps = {[testenv]deps}
pre-commit >= 2.0.0, <3
skip_install = True
commands =
pre-commit run --all-files --show-diff-on-failure
python -c 'import pathlib; print("hint: run \{\} install to add checks as pre-commit hook".format(pathlib.Path(r"{envdir}") / "bin" / "pre-commit"))'
[isort]
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
line_length = 120
known_standard_library = ConfigParser
known_first_party = virtualenv
known_third_party = _subprocess,appdirs,coverage,distlib,docutils,filelock,git,packaging,pytest,setuptools,six,sphinx,sphinx_rtd_theme,sphinxarg
[flake8]
max-complexity = 22
max-line-length = 120
ignore = E203, W503, C901, E402
[pep8]
max-line-length = 120
[testenv:release]
description = do a release, required posarg of the version number
basepython = python3.8
passenv = *
deps =
{[testenv]deps}
gitpython >= 3.0.0, < 4
towncrier >= 19.9.0rc1
packaging >= 17.1
changedir = {toxinidir}/tasks
commands =
python release.py --version {posargs}
[testenv:dev]
description = generate a DEV environment
extras = testing, docs
usedevelop = True
deps =
{[testenv]deps}
{[testenv:release]deps}
setuptools_scm[toml]>=3.4
commands =
python -m pip list --format=columns
python -c 'import sys; print(sys.executable)'
[testenv:zipapp]
description = generate a zipapp
skip_install = true
deps =
{[testenv]deps}
packaging >= 20.0.0
commands =
python tasks/make_zipapp.py