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

[testenv:py34]
commands = bash -c "echo do nothing for py34 for now. enable after stablized"

[testenv]
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command =
    pip install -U -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
       setuptools-git>=0.4
commands =
   {toxinidir}/tools/ostestr_compat_shim.sh {posargs}

[testenv:functional]
setenv = OS_TEST_PATH=./tacker/tests/functional
deps =
  {[testenv]deps}

[testenv:dsvm-functional]
basepython = python2.7
setenv = {[testenv]setenv}
         {[testenv:functional]setenv}
deps =
  {[testenv:functional]deps}
commands =
  {toxinidir}/tools/ostestr_compat_shim.sh --concurrency 2 {posargs}

[tox:jenkins]
sitepackages = True

[testenv:debug]
commands = oslo_debug_helper {posargs}

[testenv:debug-py27]
basepython = python2.7
commands = oslo_debug_helper {posargs}

[testenv:debug-py34]
basepython = python3.4
commands = oslo_debug_helper {posargs}

[testenv:pep8]
commands =
  flake8
  tacker-db-manage check_migration
  bash -c "find tacker -type f -regex '.*\.pot?' -print0|xargs -0 --no-run-if-empty -n 1 msgfmt --check-format -o /dev/null"
whitelist_externals = bash

[testenv:i18n]
commands = python ./tools/check_i18n.py ./tacker ./tools/i18n_cfg.py

[testenv:docs]
commands =
    doc8 -e .rst doc/source/ CONTRIBUTING.rst HACKING.rst README.rst TESTING.rst
    python setup.py build_sphinx

[testenv:releasenotes]
# Note: remove once infra supports constraints for this target
install_command = pip install -U --force-reinstall {opts} {packages}
commands =
  sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html


[testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage.
# NOTE(sdague): this target does not use constraints because
# upstream infra does not yet support it. Once that's fixed, we can
# drop the install_command.
install_command = pip install -U --force-reinstall {opts} {packages}
commands =
  coverage erase
  python setup.py testr --coverage --testr-args='{posargs}'
  coverage combine
  coverage html --include='tacker/*' -d covhtml -i

[testenv:venv]
# Note: remove once infra supports constraints for this target
install_command = pip install -U --force-reinstall {opts} {packages}
commands = {posargs}

[flake8]
# E128 continuation line under-indented for visual indent
ignore = E128
show-source = true
builtins = _
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,.ropeproject

[hacking]
import_exceptions = tacker._i18n
local-check-factory = tacker.hacking.checks.factory

[testenv:config-gen]
commands =
    oslo-config-generator --config-file=etc/config-generator.conf