[tox]
envlist = pep8,py27,py34,py35,py36,py37,bandit,docs

[testenv]
passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH

deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt

commands =
    coverage run --source=kmip/ --omit=kmip/demos/*,kmip/tests/* -m pytest --strict kmip/tests/unit {posargs}
    coverage report -m
    coverage html

[testenv:pep8]
commands = flake8 kmip/

[testenv:integration]
# Note: This requires local or remote access to a KMIP appliance or service
deps = {[testenv]deps}
basepython=python2.7
commands =
    py.test --strict kmip/tests/integration -m "not ignore" {posargs}

[testenv:functional]
# Note: This requires local access to instances of the PyKMIP server and SLUGS.
deps = {[testenv]deps}
basepython=python2.7
commands =
    py.test --strict kmip/tests/functional -m "not ignore" {posargs}

[testenv:bandit]
deps = {[testenv]deps}
commands = bandit -r kmip -n5 -x kmip/tests

[testenv:docs]
changedir = docs
deps =
    sphinx
    sphinx_rtd_theme
basepython = python2.7
commands =
	sphinx-build -j4 -T -W -b html -d {envtmpdir}/doctrees source {envtmpdir}/html

[testenv:docs-linkcheck]
changedir = docs
extras =
deps = {[testenv:docs]deps}
basepython = python2.7
commands =
    sphinx-build -W -b linkcheck source {envtmpdir}/html

[flake8]
exclude = .git,.tox,dist,rpmbuild,*.egg-info