[tox]
minversion = 2.6
envlist = pep8-constraints,py27-constraints,py35-constraints,cover
skipsdist = True

[testenv]
usedevelop = True
install_command =
                  constraints: {[testenv:common-constraints]install_command}
                  pip install -U {opts} {packages}
setenv =
   VIRTUAL_ENV={envdir}
whitelist_externals =
    find
    rm

deps =
    -r{toxinidir}/test-requirements.txt
extras =
    libvirt
commands =
  find . -type f -name "*.pyc" -delete
  py.test -vvvv --html={envlogdir}/pytest_results.html --self-contained-html --durations=10 "os_faults/tests/unit" {posargs}
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY

[testenv:common-constraints]
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}

[testenv:pep8]
commands = flake8 . doc/ext

[testenv:pep8-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:pep8]commands}

[testenv:venv]
commands = {posargs}

[testenv:venv-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {posargs}

[testenv:cover]
commands =
    py.test --cov-config .coveragerc --cov-report html --cov=os_faults "os_faults/tests/unit"
    coverage html -d {envlogdir}
    coverage report

[testenv:cover-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:cover]commands}

[testenv:integration]
setenv = {[testenv]setenv}
         OS_TEST_PATH=./os_faults/tests/integration
deps = {[testenv]deps}
       oslo.concurrency
commands =
  py.test -vvvv --html={envlogdir}/pytest_results.html --self-contained-html --durations=10 "os_faults/tests/integration" {posargs}

[testenv:integration-py27]
basepython = python2.7
setenv = {[testenv:integration]setenv}
deps = {[testenv:integration]deps}
commands = {[testenv:integration]commands}

[testenv:integration-py35]
basepython = python3.5
setenv = {[testenv:integration]setenv}
deps = {[testenv:integration]deps}
commands = {[testenv:integration]commands}

[testenv:docs]
commands =
    rm -rf doc/build
    python setup.py build_sphinx --warning-is-error

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

[testenv:docs-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:docs]commands}

[testenv:debug]
commands = oslo_debug_helper {posargs}

[testenv:debug-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:debug]commands}


[flake8]
# E123 skipped because it is ignored by default in the default pep8.
# E125 skipped until https://github.com/jcrocholl/pep8/issues/126 is resolved.
ignore = E123,E125
show-source = True
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
