| [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 |