[tox]
envlist = py26,py27,pypy,py33,py34,docs,pep8,py3pep8

[testenv]
# If you add a new dep here you probably need to add it in setup.py as well
deps =
    coverage
    iso8601
    pretend
    pytest
    ./vectors
passenv = ARCHFLAGS LDFLAGS CFLAGS INCLUDE LIB LD_LIBRARY_PATH
commands =
    pip list
    python -c "from cryptography.hazmat.backends.openssl.backend import backend; print(backend.openssl_version_text())"
    # We use parallel mode and then combine here so that coverage.py will take
    # the paths like .tox/py34/lib/python3.4/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

[testenv:docs]
deps =
    doc8
    pyenchant
    readme>=0.5.1
    sphinx
    sphinx_rtd_theme
    sphinxcontrib-spelling
basepython = python2.7
commands =
    sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
    sphinx-build -W -b latex -d {envtmpdir}/doctrees docs docs/_build/latex
    sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
    sphinx-build -W -b spelling docs docs/_build/html
    doc8 --allow-long-titles README.rst CHANGELOG.rst docs/ --ignore-path docs/_build/
    python setup.py check --restructuredtext --strict

[testenv:docs-linkcheck]
deps =
    sphinx
basepython = python2.7
commands =
    sphinx-build -W -b linkcheck docs docs/_build/html

# Temporarily disable coverage on pypy because of performance problems with
# coverage.py on pypy.
[testenv:pypy]
commands =
    pip list
    python -c "from cryptography.hazmat.backends.openssl.backend import backend; print(backend.openssl_version_text())"
    py.test --capture=no --strict {posargs}

# Temporarily disable coverage on pypy3 because of performance problems with
# coverage.py on pypy3.
[testenv:pypy3]
commands =
    pip list
    python -c "from cryptography.hazmat.backends.openssl.backend import backend; print(backend.openssl_version_text())"
    py.test --capture=no --strict {posargs}

[testenv:pep8]
deps =
    flake8
    flake8-import-order
    pep8-naming
commands =
    flake8 .

[testenv:py3pep8]
basepython = python3.3
deps =
    flake8
    flake8-import-order
    pep8-naming
commands =
    flake8 .

[testenv:randomorder]
deps =
    {[testenv]deps}
    pytest-random
commands =
    py.test --capture=no --strict --random {posargs}

[flake8]
exclude = .tox,*.egg
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
    supported: parametrized test requiring only_if and skip_message
