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

[testenv]
usedevelop = True
install_command = pip install -U --force-reinstall {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands =
    ostestr {posargs}

[testenv:pep8]
sitepackages = False
commands =
  flake8 {posargs}

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

[testenv:venv]
commands = {posargs}

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


[flake8]
# E125 is deliberately excluded. See https://github.com/jcrocholl/pep8/issues/126
# H402 skipped because some docstrings aren't sentences
# E123 skipped because it is ignored by default in the default pep8
# E129 skipped because it is too limiting when combined with other rules
# H305 skipped because it is inconsistent between python versions
# E711 skipped because sqlalchemy filter() requires using == instead of is
ignore = E125,H402,E123,E129,H305,E711
exclude = .venv,.git,.tox,dist,doc,*egg,build

[testenv:generate_samples]
commands =
    oslo-config-generator --config-file config-generator/subunit2sql.conf
    oslo-config-generator --config-file config-generator/sql2subunit.conf
    oslo-config-generator --config-file config-generator/subunit2sql-db-manage.conf