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

[testenv]
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command = pip install {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands = python setup.py testr --testr-args='{posargs}'

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

[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees \
         -b html releasenotes/source releasenotes/build/html

[testenv:pep8]
commands =
  flake8 {posargs}
  # Run bashate during pep8 runs to ensure violations are caught by
  # the check and gate queues.
  bashate tools/enable-pre-commit-hook.sh \
         contrib/ci/pre_test_hook.sh \
         contrib/ci/post_test_hook.sh \
         devstack/plugin.sh \
         tools/cover.sh \
         run_tests.sh

[testenv:genconfig]
whitelist_externals = bash
commands =
  oslo-config-generator --config-file etc/oslo-config-generator/manila.conf

[testenv:venv]
commands = {posargs}

[testenv:docs]
commands = python setup.py build_sphinx

[testenv:cover]
commands = {toxinidir}/tools/cover.sh {posargs}

[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
       pylint==0.26.0
whitelist_externals = bash
commands = bash tools/lintstack.sh

[testenv:lint]
deps = -r{toxinidir}/requirements.txt
       pylint==0.26.0
commands = python tools/lintstack.py check

[flake8]
# Following checks are ignored on purpose:
#
# H904 wrap long lines in parentheses instead of a backslash
# reason: removed in hacking (https://review.openstack.org/#/c/101701/)
ignore = H904
builtins = _
exclude = .venv,.tox,dist,doc,openstack,*egg

[hacking]
import_exceptions =
  manila.i18n
local-check-factory = manila.hacking.checks.factory