[tox]
minversion = 1.6
envlist = linters
skipsdist = True

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

[testenv:linters]
whitelist_externals = bash
commands =
  flake8
  {toxinidir}/tools/run-bashate.sh
  python3 {toxinidir}/tools/sorted_modules_env.py {toxinidir}/modules.env
  python3 {toxinidir}/tools/irc_checks.py
  python3 {toxinidir}/tools/check_clouds_yaml.py
  python3 -m unittest playbooks/roles/install-ansible/files/inventory_plugins/test_yamlgroup.py
  # Ansible Lint Check
  #
  # ANSIBLE0010: Package installs should not use latest
  #  We often deploy latest pip packages
  bash -c "find roles playbooks -type f -regex '.*.y[a]?ml' -print0 | xargs -t -n1 -0 \
    ansible-lint -x ANSIBLE0004 -x ANSIBLE0006 -x ANSIBLE0007 -x ANSIBLE0010 \
                 -x ANSIBLE0011 -x ANSIBLE0012 -x ANSIBLE0013 -x ANSIBLE0015 \
                 -x 304"

[testenv:venv]
commands = {posargs}

[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -E -b html doc/source doc/build/html

[testenv:testinfra]
commands = py.test --junit-xml junit.xml --connection=ansible --ansible-inventory=/etc/ansible/hosts/inventory.yaml -v testinfra {posargs}

[flake8]
show-source = True
exclude = .tox,.eggs
ignore = E125,H
select = H231