80 lines
2.4 KiB
INI
80 lines
2.4 KiB
INI
# The leading comma generates the "py-..." environments.
|
|
[testenv:py{,38,39,310,311,312}-{android,cocoa,core,gtk,iOS,web,winforms}]
|
|
skip_install = True
|
|
setenv =
|
|
android: subdir = android
|
|
cocoa: subdir = cocoa
|
|
core: subdir = core
|
|
gtk: subdir = gtk
|
|
iOS: subdir = iOS
|
|
web: subdir = web
|
|
winforms: subdir = winforms
|
|
|
|
core: TOGA_BACKEND = toga_dummy
|
|
!core: TOGA_BACKEND = toga_{env:subdir}
|
|
gtk: test_command_prefix = xvfb-run -a -s "-screen 0 2048x1536x24"
|
|
changedir = {env:subdir}
|
|
allowlist_externals =
|
|
bash
|
|
gtk: xvfb-run
|
|
commands =
|
|
# TOGA_INSTALL_COMMAND is set to a bash command by the CI workflow.
|
|
{env:TOGA_INSTALL_COMMAND:python -m pip install ../core[dev] ../dummy .}
|
|
{env:test_command_prefix:} coverage run -m pytest -vv {posargs}
|
|
coverage combine
|
|
coverage report --rcfile ../pyproject.toml
|
|
|
|
[testenv:towncrier-check]
|
|
skip_install = True
|
|
deps =
|
|
{[testenv:towncrier]deps}
|
|
commands =
|
|
python -m towncrier.check --compare-with origin/main
|
|
|
|
[testenv:towncrier]
|
|
skip_install = True
|
|
deps =
|
|
towncrier ~= 22.8
|
|
./core
|
|
commands =
|
|
towncrier {posargs}
|
|
|
|
[docs]
|
|
build_dir = _build
|
|
# -W: make warnings into errors
|
|
# --keep-going: continue on errors
|
|
# -j: run with multiple processes
|
|
sphinx_args = -W --keep-going -j auto
|
|
# -v: verbose logging
|
|
# -E: force rebuild of environment
|
|
# -T: print traceback on error
|
|
# -a: read/parse all files
|
|
# -d: use tox's temp dir for caching
|
|
sphinx_args_extra = {[docs]sphinx_args} -v -E -T -a -d {envtmpdir}/doctrees
|
|
|
|
[testenv:docs{,-lint,-all}]
|
|
skip_install = True
|
|
change_dir = docs
|
|
deps =
|
|
./core[docs]
|
|
passenv =
|
|
# On macOS M1, you need to manually set the location of the PyEnchant
|
|
# library:
|
|
# export PYENCHANT_LIBRARY_PATH=/opt/homebrew/lib/libenchant-2.2.dylib
|
|
PYENCHANT_LIBRARY_PATH
|
|
commands =
|
|
!lint-!all : python -m sphinx {[docs]sphinx_args} -b html . {[docs]build_dir}/html
|
|
lint : python -m sphinx {[docs]sphinx_args_extra} -b linkcheck . {[docs]build_dir}/links
|
|
lint : python -m sphinx {[docs]sphinx_args_extra} -b spelling . {[docs]build_dir}/spell
|
|
all : python -m sphinx {[docs]sphinx_args_extra} -b html . {[docs]build_dir}/html
|
|
|
|
[testenv:package]
|
|
skip_install = True
|
|
deps =
|
|
check_manifest==0.48
|
|
build==0.9.0
|
|
twine==4.0.2
|
|
commands =
|
|
check-manifest -v {posargs}
|
|
python -m build {posargs}
|
|
python -m twine check {posargs}/dist/*
|