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

[testenv]
install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt

[testenv:pep8]
commands =
    flake8

[testenv:venv]
commands = {posargs}

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

[testenv:validate-contents]
commands =
    {toxinidir}/tools/validate-all-json.sh
    {toxinidir}/tools/validate-all-yaml.sh
    {toxinidir}/tools/validate-all-maintainer.sh

[testenv:bashate]
deps = bashate
whitelist_externals = bash
# tox improperly interprets # and {1} in regex, so match on [[:punct:]]+
commands =
    bash -c "files=`egrep -rlI --exclude-dir .git --exclude-dir .tox '^[[:punct:]]+!/(bin/|/usr/bin/env )(ba)?sh' .` && bashate $files"

[testenv:setupenv]
whitelist_externals = bash
commands = bash -c tests/setup_gate.sh

[testenv:images-centos-binary]
whitelist_externals = find
                      bash
                      sudo
commands =
   find . -type f -name "*.pyc" -delete
   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
   sudo -g docker testr run test_build.BuildTestCentosBinary

[testenv:images-centos-source]
whitelist_externals = find
                      bash
                      sudo
commands =
   find . -type f -name "*.pyc" -delete
   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
   sudo -g docker testr run test_build.BuildTestCentosSource

[testenv:images-ubuntu-source]
whitelist_externals = find
                      bash
                      sudo
commands =
   find . -type f -name "*.pyc" -delete
   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
   sudo -g docker testr run test_build.BuildTestUbuntuSource

[testenv:functional]
whitelist_externals = find
                      bash
commands =
   find . -type f -name "*.pyc" -delete
   bash -c "if [ ! -d .testrepository ]; then testr init; fi"
   testr run ^(?!test_images).*

[flake8]
show-source = True
exclude=.git,.tox,doc,ansible/library,docker/kolla-ansible