blob: faccbdbd841208335c9ab66cb729f32a8199377d [file] [log] [blame]
Alex Gaynor0f66c6d2013-08-07 12:18:02 -07001[tox]
Paul Kehrer4e91f7f2015-09-14 09:02:46 -05002envlist = py26,py27,pypy,py33,py34,py35,docs,pep8,py3pep8
Alex Gaynor0f66c6d2013-08-07 12:18:02 -07003
4[testenv]
Chris Wolfe0b26ab22016-11-05 23:00:37 -05005extras =
6 test
Alex Gaynor83a0f482013-08-10 15:48:57 -04007deps =
Alex Gaynorff61cd32013-10-03 09:52:08 -07008 coverage
Alex Stapleton3888a842014-03-24 23:05:53 +00009 ./vectors
Paul Kehrer9b6ae9c2015-09-15 18:30:55 -050010passenv = ARCHFLAGS LDFLAGS CFLAGS INCLUDE LIB LD_LIBRARY_PATH USERNAME
Alex Gaynorff61cd32013-10-03 09:52:08 -070011commands =
Paul Kehrer7cf4c302015-06-06 08:45:09 -050012 pip list
Donald Stufft62143e42014-11-13 08:17:36 -050013 # We use parallel mode and then combine here so that coverage.py will take
14 # the paths like .tox/py34/lib/python3.4/site-packages/cryptography/__init__.py
15 # and collapse them into src/cryptography/__init__.py.
16 coverage run --parallel-mode -m pytest --capture=no --strict {posargs}
17 coverage combine
Alex Gaynor3e81fb22013-11-05 16:29:19 -080018 coverage report -m
Alex Gaynor0f66c6d2013-08-07 12:18:02 -070019
20[testenv:docs]
Chris Wolfe0b26ab22016-11-05 23:00:37 -050021extras =
22 docstest
Alex Gaynor0f66c6d2013-08-07 12:18:02 -070023basepython = python2.7
Donald Stufft235fa712013-08-11 17:47:17 -040024commands =
25 sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
Alex Gaynor960cf5e2013-12-15 10:24:35 -080026 sphinx-build -W -b latex -d {envtmpdir}/doctrees docs docs/_build/latex
Donald Stufft235fa712013-08-11 17:47:17 -040027 sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
Paul Kehrercd34ca62014-09-29 15:20:43 -050028 sphinx-build -W -b spelling docs docs/_build/html
Paul Kehrerb525adf2014-09-29 15:18:23 -050029 doc8 --allow-long-titles README.rst CHANGELOG.rst docs/ --ignore-path docs/_build/
Donald Stufft942e91d2015-02-12 21:39:51 -050030 python setup.py check --restructuredtext --strict
Alex Gaynor0f66c6d2013-08-07 12:18:02 -070031
Paul Kehrer986b1902014-03-02 16:35:21 -040032[testenv:docs-linkcheck]
33deps =
34 sphinx
35basepython = python2.7
36commands =
37 sphinx-build -W -b linkcheck docs docs/_build/html
38
Paul Kehrer1dafc3f2016-01-03 21:09:22 -060039# This target disables coverage on pypy because of performance problems with
David Reid46cb6012013-10-31 15:53:59 -070040# coverage.py on pypy.
Paul Kehrer1dafc3f2016-01-03 21:09:22 -060041[testenv:pypy-nocoverage]
Paul Kehrer030c4ac2016-01-03 21:22:05 -060042basepython = pypy
Paul Kehrerdefa4602014-12-23 13:00:23 -060043commands =
Paul Kehrer7cf4c302015-06-06 08:45:09 -050044 pip list
Paul Kehrerdefa4602014-12-23 13:00:23 -060045 py.test --capture=no --strict {posargs}
46
Alex Gaynor0f66c6d2013-08-07 12:18:02 -070047[testenv:pep8]
Chris Wolfe0b26ab22016-11-05 23:00:37 -050048extras =
49 pep8test
Alex Gaynor5b8126f2014-05-17 22:34:56 -070050commands =
51 flake8 .
Alex Gaynor967c03b2013-10-21 20:22:50 -070052
Alex Gaynorc510e492013-10-31 11:37:11 -070053[testenv:py3pep8]
Terry Chiaac85fa92015-08-16 13:55:46 +080054basepython = python3
Chris Wolfe0b26ab22016-11-05 23:00:37 -050055extras =
56 pep8test
Alex Gaynord8387832014-05-17 22:35:16 -070057commands =
58 flake8 .
Alex Gaynorc510e492013-10-31 11:37:11 -070059
Paul Kehrer1ecc7f12014-11-20 19:47:12 -100060[testenv:randomorder]
61deps =
62 {[testenv]deps}
63 pytest-random
64commands =
65 py.test --capture=no --strict --random {posargs}
66
Alex Gaynor967c03b2013-10-21 20:22:50 -070067[flake8]
Terry Chia5cec1bf2015-03-22 11:49:08 +080068exclude = .tox,*.egg,.git,_build,.hypothesis
Alex Stapletonbafceb62014-03-22 08:50:07 +000069select = E,W,F,N,I
Alex Stapleton707b0082014-04-20 22:24:41 +010070application-import-names = cryptography,cryptography_vectors,tests
Alex Gaynor95f2c2b2014-08-19 16:18:01 -070071
72[doc8]
73extensions = rst
Terry Chia36b35b12014-12-14 15:32:16 +080074
75[pytest]
76addopts = -r s
77markers =
78 requires_backend_interface: this test requires a specific backend interface
79 supported: parametrized test requiring only_if and skip_message