[tox]
minversion = 3.18.0
envlist = py3,pypy,pep8
skipsdist = True
ignore_basepython_conflict = True

[testenv]
basepython = python3
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
setenv =
   VIRTUAL_ENV={envdir}
   PYTHONWARNINGS=default::DeprecationWarning
deps =
    -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}

[testenv:pep8]
commands =
    doc8 doc/source/ CONTRIBUTING.rst HACKING.rst README.rst
    flake8
    bandit -r watcher_tempest_plugin -x tests -n5 -ll -s B320

[testenv:cover]
setenv =
    {[testenv]setenv}
    PYTHON=coverage run --source ironic_tempest_plugin --parallel-mode
commands =
    stestr run {posargs}
    coverage combine
    coverage html -d cover
    coverage xml -o cover/coverage.xml

[testenv:venv]
commands = {posargs}

[testenv:docs]
deps =
  -r{toxinidir}/requirements.txt
  -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html

[testenv:pdf-docs]
envdir = {toxworkdir}/docs
deps = {[testenv:docs]deps}
allowlist_externals =
  rm
  make
commands =
  rm -rf doc/build/pdf
  sphinx-build -W -b latex doc/source doc/build/pdf
  make -C doc/build/pdf

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

[testenv:debug]
commands = oslo_debug_helper {posargs}

[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r watcher_tempest_plugin -x tests -n5 -ll -s B320

show-source = True
ignore = E123,E125
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build

[flake8]
show-source=True
ignore= H105,E123,E226,N320,H202,W503
builtins= _
enable-extensions = H106,H203
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,demo/,releasenotes

[doc8]
extension=.rst