[tox]
envlist = py26,py27,pep8

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

deps = -r{toxinidir}/tools/pip-requires
       -r{toxinidir}/tools/test-requires
commands = bash -c 'if [ ! -d ./.testrepository ] ; then testr init ; fi'
           bash -c 'testr run --parallel {posargs} ; RET=$? ; echo "Slowest Tests" ; testr slowest && exit $RET'

[tox:jenkins]
sitepackages = True
downloadcache = ~/cache/pip

[testenv:pep8]
deps=pep8==1.3.3
commands =
  python tools/hacking.py --ignore=N4,E12,E711,E721,E712 --repeat --show-source \
    --exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg .
  python tools/hacking.py --ignore=N4,E12,E711,E721,E712 --repeat --show-source \
    --filename=nova* bin

[testenv:pylint]
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/tools/pip-requires
       pylint==0.26.0
commands = bash tools/lintstack.sh

[testenv:pyflakes]
deps = pyflakes
commands = python tools/flakes.py nova

[testenv:cover]
# Need to omit DynamicallyCompiledCheetahTemplate.py from coverage because
# it ceases to exist post test run. Also do not run test_coverage_ext tests
# while gathering coverage as those tests conflict with coverage.
setenv = OMIT=--omit=DynamicallyCompiledCheetahTemplate.py
         PYTHON=coverage run --source nova --parallel-mode
commands = bash -c 'if [ ! -d ./.testrepository ] ; then testr init ; fi'
           bash -c 'testr run --parallel \^\(\?\!\.\*test_coverage_ext\)\.\*\$ ; RET=$? ; coverage combine ; coverage html -d ./cover $OMIT && exit $RET'

[testenv:venv]
commands = {posargs}
