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

[testenv]
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
install_command = pip install -U {opts} {packages}
whitelist_externals = find
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
       -r{toxinidir}/doc-requirements.txt
commands =
  find . -type f -name "*.pyc" -delete
  python setup.py testr --slowest --testr-args='{posargs}'

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

[testenv:pep8]
commands = flake8
           doc8 specs doc/source octavia \
           CONSTITUTION.rst HACKING.rst README.rst

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

[testenv:venv]
commands = {posargs}

[testenv:genconfig]
commands =
         oslo-config-generator --output-file etc/octavia/octavia.conf.sample \
         --namespace octavia \
         --namespace oslo.db \
         --namespace oslo.log \
         --namespace oslo.messaging \
         --namespace keystonemiddleware.auth_token

[testenv:specs]
commands =
    find . -type f -name "*.pyc" -delete
    python -m unittest specs-tests.test_titles

[flake8]
# Ignoring O321 because it's unnecessarily restricting use of json package.
# jsonutils version doesn't add additional value
ignore = O321
show-source = true
builtins = _
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios

[hacking]
import_exceptions = octavia.i18n
local-check-factory = octavia.hacking.checks.factory

[doc8]
max-line-length = 79