[tox]
envlist = py35,py27,pep8,releasenotes
minversion = 1.6
skipsdist = True

[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv =
    VIRTUAL_ENV={envdir}
    DISCOVER_DIRECTORY=sahara_tests/unit/scenario
deps =
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/test-requirements.txt
commands = ostestr {posargs}
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY OS_*

[testenv:venv]
commands = {posargs}
passenv = OS_*

[testenv:cover]
setenv =
    DISCOVER_DIRECTORY=sahara_tests
    PACKAGE_NAME=sahara_tests
commands = {toxinidir}/tools/cover.sh {posargs}

[testenv:docs]
commands =
    rm -rf doc/html doc/build
    rm -rf doc/source/apidoc doc/source/api
    python setup.py build_sphinx
whitelist_externals =
    rm

[tox:jenkins]
downloadcache = ~/cache/pip

[testenv:pylint]
setenv = VIRTUAL_ENV={envdir}
commands = bash tools/lintstack.sh

[testenv:pep8]
commands =
    flake8 {posargs}
    doc8 doc/source
    # Run bashate checks
    # E011 is intentionally ignored because it does not make sense; it is
    # perfectly reasonable to put 'then' on a separate line when natural
    # line breaks occur in long conditionals.
    bash -c "find tools -iname '*.sh' -print0 | xargs -0 bashate -v --ignore E011"
whitelist_externals = bash

[testenv:releasenotes]
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html

[flake8]
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,tools
select = E
