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

[testenv]
usedevelop = True
whitelist_externals = find
install_command = pip install -U {opts} {packages}
setenv =
   VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands =
  find . -type f -name "*.pyc" -delete
  find . -type d -name "__pycache__" -delete
  ostestr --concurrency=6 {posargs}

[testenv:pep8]
commands =
    doc8 doc/source/ CONTRIBUTING.rst HACKING.rst README.rst
    flake8
    bandit -r watcher -x tests -n5 -ll

[testenv:venv]
setenv = PYTHONHASHSEED=0
commands = {posargs}

[testenv:cover]
commands = python setup.py testr --coverage --testr-args='{posargs}'

[testenv:docs]
setenv = PYTHONHASHSEED=0
commands =
    doc8 doc/source/ CONTRIBUTING.rst HACKING.rst README.rst
    python setup.py build_sphinx

[testenv:debug]
commands = oslo_debug_helper -t watcher/tests {posargs}

[testenv:config]
sitepackages = False
commands =
    oslo-config-generator --config-file etc/watcher/watcher-config-generator.conf

[flake8]
show-source=True
ignore=
builtins= _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,*sqlalchemy/alembic/versions/*,demo/,releasenotes

[testenv:wheel]
commands = python setup.py bdist_wheel

[hacking]
import_exceptions = watcher._i18n
local-check-factory = watcher.hacking.checks.factory

[doc8]
extension=.rst
# todo: stop ignoring doc/source/man when https://bugs.launchpad.net/doc8/+bug/1502391 is fixed
ignore-path=doc/source/image_src,doc/source/man,doc/source/api

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

[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r watcher -x tests -n5 -ll
