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
|
# Tox (https://tox.wiki/) is a tool for running tests in multiple
# virtualenvs. This configuration file will run the test suite on all
# supported python versions. To use it, run "tox" from this directory.
#
# For a specific environment, run:
# "tox -e <env>" (i.e.: "tox -e py313" or "tox -e lint")
#
# This tox configuration will skip any Python interpreters that can't be found.
# To manage multiple Python interpreters for covering all versions, you can use
# pyenv: https://github.com/pyenv/pyenv
[tox]
env_list =
lint
type
validate-pyproject
py39
py310
py311
py312
py313
pypy3
skip_missing_interpreters = True
[testenv]
description = run unit tests
deps =
pytest
commands =
# "-vv" means extra verbose
# "-r fEsxXp" means show extra test summary info as specified by:
# (f)ailed, (E)rror, (s)kipped, (x)failed, (X)passed, (p)assed
pytest -vv -r fEsxXp {posargs:.}
[testenv:validate-pyproject]
description = validate project configuration
skip_install = true
deps =
packaging
validate-pyproject
commands =
validate-pyproject pyproject.toml
[testenv:lint]
description = run linters
deps =
autoflake
black
flake8
isort
skip_install = True
commands =
black .
isort .
autoflake .
flake8 --max-line-length=88 --extend-exclude={env:VIRTUAL_ENV} .
[testenv:type]
description = run type checks
deps =
mypy
skip_install = True
commands =
mypy --install-types --non-interactive .
|