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

[testenv]
# Note the hash seed is set to 0 until heat can be tested with a
# random hash seed successfully.
setenv = VIRTUAL_ENV={envdir}
         PYTHONHASHSEED=0
usedevelop = True
install_command = pip install {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands =
  python setup.py testr --slowest --testr-args='^(?!functionaltests) {posargs}'

whitelist_externals = bash

[testenv:functional]
commands =
  python -c "print('TODO: functional tests')"

[testenv:pep8]
commands =
    flake8 heat bin/heat-api bin/heat-api-cfn bin/heat-api-cloudwatch bin/heat-engine bin/heat-manage contrib functionaltests
    # Check that .po and .pot files are valid:
    bash -c "find heat -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"

[testenv:venv]
commands = {posargs}

[testenv:cover]
commands =
  python setup.py testr --coverage --testr-args='{posargs}'

[testenv:docs]
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
       sphinxcontrib-httpdomain
commands = python setup.py build_sphinx

[flake8]
# H302 import only modules.'bla..' does not import a module
# H404 multi line docstring should start with a summary
# H803 no full stop at the end of the commit message
ignore = H302,H404,H803
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,tools,build
