[tox]
minversion = 3.2
envlist = py3,pep8,docs
ignore_basepython_conflict = true

[testenv]
basepython = python3
deps =
  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/requirements.txt
commands = stestr run {posargs}

[testenv:venv]
deps =
  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/doc/requirements.txt
  -r{toxinidir}/requirements.txt
commands = {posargs}

[testenv:pep8]
ignore = E251
deps =
  pre-commit
commands =
  pre-commit run -a

[flake8]
ignore = E251,H405
show-source = True
exclude=.venv,.git,.tox,dist,*lib/python*,*egg,build

[testenv:docs]
deps =
  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
  -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W doc/source doc/build/html

[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands = sphinx-build -a -E -W releasenotes/source releasenotes/build/html

[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False

