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

[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv =
   VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt
       -r{toxinidir}/requirements.txt
commands = python setup.py testr --slowest --testr-args='{posargs}'

[testenv:pep8]
commands =
    flake8
    # Run doc8 to check .rst and .txt files.
    # HACKING.rst is the only file that is not referenced from
    # doc/source, so add it explicitly.
    doc8 -e txt -e rst doc/source/ HACKING.rst
    # Run bashate during pep8 runs to ensure violations are caught by
    # the check and gate queues.
    bashate autogenerate_config_docs/autohelp-wrapper \
        bin/doc-tools-check-languages \
        cleanup/remove_trailing_whitespaces.sh

[testenv:pylint]
commands = pylint os_doc_tools cleanup

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

[testenv:venv]
commands = {posargs}

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

[flake8]
# H803 skipped on purpose per list discussion.
# E123, E125 skipped as they are invalid PEP-8.

show-source = True
ignore = E123,E125,H803
builtins = _
exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,*autogenerate_config_docs/venv,*autogenerate_config_docs/sources
# 28 is currently the most complex thing we have
max-complexity=29
