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

[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv =
    VIRTUAL_ENV={envdir}
    DISCOVER_DIRECTORY=sahara/tests/unit
deps =
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/test-requirements.txt
commands = python setup.py test --slowest --testr-args="{posargs}"
whitelist_externals = bash

[testenv:integration]
setenv =
    VIRTUAL_ENV={envdir}
    DISCOVER_DIRECTORY=sahara/tests/integration
commands = python setup.py test --slowest --testr-args="{posargs}"

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

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

[testenv:pep8]
commands =
    flake8 {posargs}
    {toxinidir}/tools/config/check_uptodate.sh
    # Check that .po and .pot files are valid:
    bash -c "find sahara -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"

[testenv:doc8]
deps =
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/test-requirements.txt
    doc8
commands = doc8 doc/source

[testenv:venv]
commands = {posargs}

[testenv:docs]
commands =
    rm -rf doc/html doc/build
    rm -rf doc/source/apidoc doc/source/api
    python setup.py build_sphinx
whitelist_externals =
    rm

[testenv:pylint]
setenv = VIRTUAL_ENV={envdir}
commands = bash tools/lintstack.sh

[testenv:genconfig]
commands =
  bash tools/config/generate_sample.sh -b . -p sahara -o etc/sahara

[testenv:pip-missing-reqs]
# do not install test-requirements as that will pollute the virtualenv for
# determining missing packages
# this also means that pip-missing-reqs must be installed separately, outside
# of the requirements.txt files
deps =
    pip_missing_reqs
    -r{toxinidir}/requirements.txt
commands = pip-missing-reqs -d --ignore-file=sahara/tests/* sahara

[flake8]
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools

[hacking]
import_exceptions = sahara.i18n._, sahara.i18n._LI, sahara.i18n._LW, sahara.i18n._LE, sahara.i18n._LC
local-check-factory = sahara.utils.hacking.checks.factory
