blob: e6e04575bbc614ca1fb11cc4436d7796f3ef8a7a [file] [log] [blame]
[tox]
minversion = 2.4
envlist = py27,pypy,py36,py37,py38,py39,docs,pep8,packaging
isolated_build = True
[testenv]
extras =
test
ssh: ssh
deps =
# This must be kept in sync with .github/workflows/ci.yml
coverage
./vectors
randomorder: pytest-randomly
passenv = ARCHFLAGS LDFLAGS CFLAGS INCLUDE LIB LD_LIBRARY_PATH USERNAME PYTHONIOENCODING OPENSSL_FORCE_FIPS_MODE
commands =
pip list
# We use parallel mode and then combine here so that coverage.py will take
# the paths like .tox/py38/lib/python3.8/site-packages/cryptography/__init__.py
# and collapse them into src/cryptography/__init__.py.
coverage run --parallel-mode -m pytest --capture=no --strict {posargs}
coverage combine
coverage report -m
# This target disables coverage on pypy because of performance problems with
# coverage.py on pypy.
[testenv:pypy-nocoverage]
basepython = pypy
commands =
pip list
pytest --capture=no --strict {posargs}
# This target disables coverage on pypy because of performance problems with
# coverage.py on pypy.
[testenv:pypy3-nocoverage]
basepython = pypy3
commands =
pip list
pytest --capture=no --strict {posargs}
[testenv:docs]
extras =
docs
docstest
basepython = python3
commands =
sphinx-build -T -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
sphinx-build -T -W -b latex -d {envtmpdir}/doctrees docs docs/_build/latex
sphinx-build -T -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
sphinx-build -T -W -b spelling docs docs/_build/html
doc8 --allow-long-titles README.rst CHANGELOG.rst docs/ --ignore-path docs/_build/
python setup.py sdist
twine check dist/*
[testenv:docs-linkcheck]
extras =
docs
basepython = python3
commands =
sphinx-build -W -b linkcheck docs docs/_build/html
[testenv:pep8]
basepython = python3
extras =
pep8test
commands =
flake8 .
black --check .
[testenv:packaging]
deps =
check-manifest
commands =
check-manifest
[flake8]
ignore = E203,E211,W503,W504
exclude = .tox,*.egg,.git,_build,.hypothesis
select = E,W,F,N,I
application-import-names = cryptography,cryptography_vectors,tests
[doc8]
extensions = rst
[pytest]
addopts = -r s
markers =
requires_backend_interface: this test requires a specific backend interface
skip_fips: this test is not executed in FIPS mode
supported: parametrized test requiring only_if and skip_message
wycheproof_tests: this test runs a wycheproof fixture