[tox]
envlist = py35,py27,pep8,pylint
minversion = 2.0
skipsdist = True

[testenv]
usedevelop = True
install_command = pip install {opts} {packages}
deps=
      -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
      -r{toxinidir}/requirements.txt
      -r{toxinidir}/test-requirements.txt
commands=
    python setup.py test --slowest --testr-args='{posargs}'
passenv=
    DUMP_CONFIG_GRAPH

[testenv:pep8]
commands =
  flake8 {posargs}
  dib-lint

[testenv:pylint]
commands = pylint --rcfile pylint.cfg diskimage_builder

[testenv:venv]
commands = {posargs}

[testenv:func]
envdir = {toxworkdir}/venv
commands = {toxinidir}/tests/run_functests.sh {posargs}

[testenv:cover]
# NOTE: this is "setup.py test" (*not* testr) which is a pbr wrapper
# around testr.  This understands --coverage-package-name which we
# need due to underscore issues.
commands = python setup.py test --coverage --coverage-package-name diskimage_builder --testr-args='{posargs}'

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

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

[flake8]
ignore = E125,E126,E127,H202,H803
exclude =  .venv,.git,.tox,dist,doc/build,doc/source,*lib/python*,*egg,build,conf.py

[testenv:lower-constraints]
basepython = python3
deps =
  -c{toxinidir}/lower-constraints.txt
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/requirements.txt