[tox]
envlist = pep8

[testenv]
setenv = VIRTUAL_ENV={envdir}
         LANG=en_US.UTF-8
         LANGUAGE=en_US:en
         LC_ALL=C

[testenv:all]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
commands =
  python setup.py testr --slowest --testr-args='{posargs}'

[testenv:full]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
# The regex below is used to select which tests to run and exclude the slow tag:
# See the testrepostiory bug: https://bugs.launchpad.net/testrepository/+bug/1208610
commands =
  sh tools/pretty_tox.sh '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario|thirdparty|cli)) {posargs}'

[testenv:testr-full]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
commands =
  sh tools/pretty_tox.sh '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario|thirdparty|cli)) {posargs}'

[testenv:heat-slow]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
# The regex below is used to select heat api/scenario tests tagged as slow.
commands =
  sh tools/pretty_tox_serial.sh '(?=.*\[.*\bslow\b.*\])(^tempest\.(api|scenario)\.orchestration) {posargs}'

[testenv:py26-full]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
         NOSE_WITH_OPENSTACK=1
         NOSE_OPENSTACK_COLOR=1
         NOSE_OPENSTACK_RED=15
         NOSE_OPENSTACK_YELLOW=3
         NOSE_OPENSTACK_SHOW_ELAPSED=1
         NOSE_OPENSTACK_STDOUT=1
commands =
  nosetests --logging-format '%(asctime)-15s %(message)s' --with-xunit -sv --xunit-file=nosetests-full.xml tempest/api tempest/scenario tempest/thirdparty tempest/cli {posargs}

[testenv:py26-smoke]
setenv = VIRTUAL_ENV={envdir}
NOSE_WITH_OPENSTACK=1
         NOSE_OPENSTACK_COLOR=1
         NOSE_OPENSTACK_RED=15
         NOSE_OPENSTACK_YELLOW=3
         NOSE_OPENSTACK_SHOW_ELAPSED=1
         NOSE_OPENSTACK_STDOUT=1
commands =
  nosetests --logging-format '%(asctime)-15s %(message)s' --with-xunit -sv --attr=type=smoke --xunit-file=nosetests-smoke.xml tempest {posargs}

[testenv:smoke]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
# This is still serial because neutron doesn't work with parallel. See:
# https://bugs.launchpad.net/tempest/+bug/1216076 so the neutron smoke
# job would fail if we moved it to parallel.
commands =
   sh tools/pretty_tox_serial.sh 'smoke {posargs}'

[testenv:coverage]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
commands =
   python -m tools/tempest_coverage -c start --combine
   sh tools/pretty_tox.sh '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario|thirdparty|cli))'
   python -m tools/tempest_coverage -c report --html {posargs}

[testenv:stress]
sitepackages = True
setenv = VIRTUAL_ENV={envdir}
commands =
    python -m tempest/stress/run_stress tempest/stress/etc/stress-tox-job.json -d 3600

[testenv:venv]
commands = {posargs}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt

[testenv:pep8]
commands = flake8
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt

[hacking]
local-check-factory = tempest.hacking.checks.factory

[flake8]
# E125 is a won't fix until https://github.com/jcrocholl/pep8/issues/126 is resolved.  For further detail see https://review.openstack.org/#/c/36788/
ignore = E125,H302,H404
show-source = True
exclude = .git,.venv,.tox,dist,doc,openstack,*egg
