[tox]
envlist = py36, py37, py38, py39, pypy3, lint, docs, packaging
[gh-actions]
python =
3.6: py36
3.7: py37
3.8: py38
3.9: py39, lint, docs, packaging
pypy3: pypy3
[testenv]
passenv =
GITHUB_*
deps =
pytest>=6.0.1,<7
pytest-cov>=2.10.1,<3
pytest-xdist>=2.0.0,<3
hypothesis>=5.5,<7
commands =
pytest --cov-report=xml --cov-report=term --cov=hpack {posargs}
[testenv:pypy3]
# temporarily disable coverage testing on PyPy due to performance problems
commands = pytest {posargs}
[testenv:lint]
deps =
flake8>=3.9.1,<4
commands = flake8 src/ test/ utils/
[testenv:docs]
deps =
sphinx>=4.0.2,<5
whitelist_externals = make
changedir = {toxinidir}/docs
commands =
make clean
make html
[testenv:packaging]
basepython = python3.9
deps =
check-manifest==0.46
readme-renderer==29.0
twine>=3.4.1,<4
whitelist_externals = rm
commands =
rm -rf dist/
check-manifest
python setup.py sdist bdist_wheel
twine check dist/*
[testenv:publish]
basepython = {[testenv:packaging]basepython}
deps =
{[testenv:packaging]deps}
whitelist_externals = {[testenv:packaging]whitelist_externals}
commands =
{[testenv:packaging]commands}
twine upload dist/*
[testenv:bench]
deps =
{[testenv]deps}
pytest-benchmark==3.2.3
commands =
pytest {toxinidir}/bench/ --benchmark-only --benchmark-group-by=name --benchmark-autosave --benchmark-compare --benchmark-min-rounds=500000
[testenv:create_test_output]
basepython = python3.7
; rm -rf hpack-test-case/
; git clone https://github.com/http2jp/hpack-test-case.git
commands = python {toxinidir}/utils/create_test_output.py {posargs}