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

[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv =
   VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
whitelist_externals = bash
commands = stestr run --black-regex ".tests.functional" {posargs}

[testenv:pep8]
basepython = python3
commands = flake8

[testenv:venv]
basepython = python3
commands = {posargs}

[testenv:functional]
basepython = python2.7
setenv =
    {[testenv]setenv}
commands =
    stestr run --black-regex ".tests.unit" '{posargs}'

[testenv:docs]
basepython = python3
commands = python setup.py build_sphinx

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

[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# Following checks are ignored on purpose.
#
# E251 unexpected spaces around keyword / parameter equals
# reason: no improvement in readability
#
# E265 block comment should start with '# '
# reason: no improvement in readability
#
# H904 wrap long lines in parentheses instead of a backslash
# reason: removed in hacking (https://review.openstack.org/#/c/101701/)
#
# H404 skipped on purpose per jay pipes discussion.
#
# Due to the upgrade to hacking 0.9.2 the following checking are
# ignored on purpose for the moment and should be re-enabled.
# H106: Don’t put vim configuration in source files
# H203: Use assertIs(Not)None to check for None

show-source = True
ignore = E123,E125,E126,E127,E128,E251,E265,H302,H405,H904,H404
enable-extensions=H106,H203
builtins = _
exclude=.venv,.git,.tox,dist,*lib/python*,*egg,build
max-complexity=30

[hacking]
import_exceptions = os_vif.i18n

[testenv:lower-constraints]
basepython = python3
deps =
  -c{toxinidir}/lower-constraints.txt
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/requirements.txt