[tox]
minversion = 4.2.5
envlist = py3,pep8

[testenv]
usedevelop = False
setenv =
  OS_STDOUT_CAPTURE=1
  OS_STDERR_CAPTURE=1
  OS_TEST_TIMEOUT=600
deps =
  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2026.1}
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/requirements.txt
passenv =
  OS_TEST_TIMEOUT
  OS_STDOUT_CAPTURE
  OS_STDERR_CAPTURE
  OS_LOG_CAPTURE
commands =
  stestr run {posargs}
  aodh-config-generator
allowlist_externals =
  bash
  stestr

[testenv:cover]
deps =
  {[testenv]deps}
  coverage>=3.6  # Apache-2.0
setenv =
  {[testenv]setenv}
  PYTHON=coverage run --source aodh --parallel-mode
commands =
  coverage erase
  stestr run {posargs}
  coverage combine
  coverage html -d cover
  coverage xml -o cover/coverage.xml
  coverage report

[testenv:pep8]
skip_install = true
deps =
  pre-commit
commands =
  pre-commit run -a

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

[testenv:docs]
usedevelop = True
deps =
  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2026.1}
  -r{toxinidir}/requirements.txt
  -r{toxinidir}/doc/requirements.txt
allowlist_externals =
  rm
commands =
  rm -rf doc/build/html
  sphinx-build -W --keep-going -b html doc/source doc/build/html
setenv = PYTHONHASHSEED=0

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

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

[testenv:genpolicy]
commands =
    oslopolicy-sample-generator --config-file etc/aodh/aodh-policy-generator.conf

[testenv:venv]
commands = {posargs}
setenv = PYTHONHASHSEED=0

[testenv:debug]
commands = bash -x oslo_debug_helper {posargs}

[flake8]
# W503 line break before binary operator
# W504 line break after binary operator
# E402 module level import not at top of file
ignore = W503,W504,E402
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
# [H106] Do not put vim configuration in source files.
# [H203] Use assertIs(Not)None to check for None.
# [H204] Use assert(Not)Equal to check for equality.
# [H205] Use assert(Greater|Less)(Equal) for comparison.
# [H904] Delay string interpolations at logging calls.
enable-extensions=H106,H203,H204,H205,H904
show-source = True

[hacking]
import_exceptions =
  aodh.i18n
