forked from python-trio/trio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtox.ini
106 lines (95 loc) · 2.95 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
[tox]
envlist = py{39,310,311,312,313,314,py310}
labels =
check = typing, gen_exports, type_completeness, pip_compile
cython = py39-cython2,py39-cython,py311-cython2,py313-cython
# TODO:
# * environment to check coverage
# * replace ci.sh
# * --verbose --durations=10
# * -p _trio_check_attrs_aliases
# * mypy cache
# * LSP
# * apport
# * use tox in CI
# * switch to nox?
# * move to pyproject.toml?
# * this means conditional deps need to be replaced
# protip: install tox-uv for faster venv generation
[testenv]
description = "Base environment for running tests depending on python version."
# use wheels instead of sdist, significantly faster install
package = wheel
wheel_build_env = .pkg
deps =
hypothesis: hypothesis
-r test-requirements.txt
set_env =
slow: TOX_RUN_SLOW = '--run-slow'
commands =
pytest {env:TOX_RUN_SLOW:} {posargs}
[testenv:no_test_requirements]
description = "Run tests without optional test-requirements, to see we don't accidentally depend on a library not specified in depends."
deps =
pytest
commands =
pytest --skip-optional-imports {posargs}
[testenv:docs]
description = "Build documentation into docs/build."
deps =
-r docs-requirements.txt
# base_python synced with .readthedocs.yml
# To avoid syncing we can make RTD call the tox environment
base_python = 3.11
commands =
sphinx-build {posargs:--fresh-env} docs/source docs/build
[testenv:py39-cython2,py39-cython,py311-cython2,py313-cython]
description = "Run cython tests."
deps =
cython
cython2: cython<3
setuptools ; python_version >= '3.12'
commands_pre =
python --version
cython --version
cythonize --inplace -X linetrace=True tests/cython/test_cython.pyx
commands =
python -m tests.cython.run_test_cython
[testenv:gen_exports]
description = "Run gen_exports.py, regenerating code for public API wrappers."
deps =
-r test-requirements.txt
base_python = 3.13
commands =
python ./src/trio/_tools/gen_exports.py --test
[testenv:pip_compile]
description = "Run pre-commit job pip-compile"
base_python = 3.13
commands =
pre-commit run pip-compile --all-files
# TODO: allow specifying e.g. typing-3.11 to run with --python[-]version=3.11
[testenv:typing]
description = "Run type checks: mypy on all platforms, and pyright on `src/trio[/_core]/_tests/type_tests/`."
deps =
-r test-requirements.txt
exceptiongroup
base_python = 3.13
set_env =
PYRIGHT_PYTHON_IGNORE_WARNINGS=1
commands =
# use mypy_annotate if running in CI? if not, should remove it
mypy --platform linux
mypy --platform darwin
mypy --platform win32
pyright src/trio/_tests/type_tests
pyright src/trio/_core/_tests/type_tests
[testenv:type_completeness]
description = "Check type completeness, using our wrapper around pyright --verifytypes."
deps =
-r test-requirements.txt
exceptiongroup
base_python = 3.13
set_env =
PYRIGHT_PYTHON_IGNORE_WARNINGS=1
commands =
python src/trio/_tests/check_type_completeness.py