[pytest] strict = true addopts = -ra testpaths = tests filterwarnings = once::Warning ignore:::pympler[.*] [gh-actions] python = 2.7: py27 3.5: py35 3.6: py36 3.7: py37, docs 3.8: py38, lint, manifest, typing [gh-actions:env] PLATFORM = ubuntu-latest: linux windows-latest: windows [tox] envlist = lint typing py{35,36,37,38}-crypto-{linux,windows} py{35,36,37,38}-nocrypto-{linux,windows} manifest docs pypi-description coverage-report isolated_build = True [testenv] extras = tests crypto: cryptography commands = coverage run -m pytest {posargs} [testenv:docs] basepython = python3.7 extras = docs commands = sphinx-build -n -T -W -b html -d {envtmpdir}/doctrees docs docs/_build/html sphinx-build -n -T -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html python -m doctest README.rst [testenv:typing] basepython = python3.8 extras = dev commands = mypy --ignore-missing-imports jwt [testenv:lint] basepython = python3.8 extras = dev passenv = HOMEPATH # needed on Windows commands = pre-commit run --all-files [testenv:manifest] basepython = python3.8 deps = check-manifest skip_install = true commands = check-manifest [testenv:pypi-description] basepython = python3.8 skip_install = true deps = twine pip >= 18.0.0 commands = pip wheel -w {envtmpdir}/build --no-deps . twine check {envtmpdir}/build/* [testenv:coverage-report] basepython = python3.8 skip_install = true deps = coverage[toml]>=5.0.2 commands = coverage combine coverage report