forked from beeware/toga
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtox.ini
More file actions
109 lines (102 loc) · 4.33 KB
/
Copy pathtox.ini
File metadata and controls
109 lines (102 loc) · 4.33 KB
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
[tox]
envlist = towncrier-check,docs-lint,pre-commit,py3{10-13}-cov{,-trav},coverage{,-trav}-platform,trav-compat
labels =
test = py-cov{,-trav},coverage{,-trav}
test-core = py-cov,coverage
test-trav = py-cov-trav,coverage-trav
test310 = py310-cov{,-trav},coverage310{,-trav}
test311 = py311-cov{,-trav},coverage311{,-trav}
test312 = py312-cov{,-trav},coverage312{,-trav}
test313 = py313-cov{,-trav},coverage313{,-trav}
test-fast = py3{10-13}-fast
test-platform = py3{10-13}-cov{,-trav},coverage{,-trav}-platform
skip_missing_interpreters = True
[testenv:pre-commit]
skip_install = True
deps =
{tox_root}{/}travertino
dependency_groups = pre-commit
commands = pre-commit run --all-files --show-diff-on-failure --color=always
# The leading comma generates the "py" environment
[testenv:py{,310,311,312,313,314}{,-fast,-cov}{,-trav}]
depends = pre-commit
changedir =
!trav: core
trav: travertino
skip_install = True
setenv =
TOGA_BACKEND = toga_dummy
allowlist_externals =
bash
commands =
# TOGA_INSTALL_COMMAND is set to a bash command by the CI workflow
{env:TOGA_INSTALL_COMMAND:uv pip install {tox_root}{/}core {tox_root}{/}dummy {tox_root}{/}travertino --group dev}
!fast-!cov : python -m pytest {posargs:-vv --color yes}
cov : python -m coverage run -m pytest {posargs:-vv --color yes}
fast : python -m pytest {posargs:-vv --color yes -n auto}
[testenv:coverage{,310,311,312,313}{,-trav}{,-html}{,-keep}{,-platform}]
depends =
!trav: pre-commit,py3{10-13}{,-cov}
trav: pre-commit,py3{10-13}{,-trav}{,-cov}
changedir =
!trav: core
trav: travertino
skip_install = True
# by default, coverage should run on oldest supported Python for testing platform coverage.
# however, coverage for a particular Python version should match the version used for pytest.
base_python =
coverage310{,-trav}{,-html}{,-keep}{,-platform}: py310
coverage311{,-trav}{,-html}{,-keep}{,-platform}: py311
coverage312{,-trav}{,-html}{,-keep}{,-platform}: py312
coverage313{,-trav}{,-html}{,-keep}{,-platform}: py313
coverage{,-trav}{,-html}{,-keep}{,-platform}: py310
setenv =
keep: COMBINE_KEEP = --keep
!trav: PACKAGE_RCFILE = --rcfile {tox_root}{/}core{/}pyproject.toml
trav: PACKAGE_RCFILE = --rcfile {tox_root}{/}travertino{/}pyproject.toml
PROJECT_RCFILE = --rcfile {tox_root}{/}pyproject.toml
# disable conditional coverage exclusions for Python version
{platform}: COVERAGE_EXCLUDE_PYTHON_VERSION=disable
commands_pre = python --version
commands =
# TOGA_INSTALL_COMMAND is set to a bash command by the CI workflow
{env:TOGA_INSTALL_COMMAND:uv pip install {tox_root}{/}travertino --group dev}
-python -m coverage combine {env:PACKAGE_RCFILE} {env:COMBINE_KEEP}
html: python -m coverage html {env:PROJECT_RCFILE} --skip-covered --skip-empty
python -m coverage report {env:PROJECT_RCFILE} --fail-under=100
[testenv:trav-compat]
depends = pre-commit
changedir = travertino
skip_install = True
setenv =
TOGA_BACKEND = toga_dummy
commands =
uv pip install toga_core==0.4.8 toga_dummy==0.4.8 --group dev
# Install demo without dependencies, to avoid an unnecessary backend install.
uv pip install --no-deps toga_demo==0.4.8
# Overwrite the installed version of Travertino with the one being tested.
uv pip install {TRAVERTINO_INSTALL_COMMAND:./}
python -m pytest compat/test_compat.py
[testenv:towncrier{,-check}]
skip_install = True
dependency_groups = towncrier
commands =
check : python -m towncrier.check --compare-with origin/main
!check : python -m towncrier {posargs}
[docs]
docs_dir = {tox_root}{/}docs{/}en
[testenv:docs{,-lint,-all,-live,-en}]
# Docs are always built on Python 3.12. See also the RTD config and contribution docs.
base_python = py312
skip_install = True
dependency_groups = docs
deps =
./travertino
./core
commands =
!lint-!all-!live-!en : build_md_translations {posargs} en --source-code=core{/}src --source-code=android{/}src
lint : markdown-checker --dir {[docs]docs_dir} --func check_broken_urls
lint : pyspelling
live : live_serve_en {posargs} core{/}src --source-code=core{/}src --source-code=android{/}src
all : build_md_translations {posargs} en --source-code=core{/}src --source-code=android{/}src
en : build_md_translations {posargs} en --source-code=core{/}src --source-code=android{/}src