# Global tox file

# This file is used to invoke tox in individual charms

[tox]
skipsdist = True
envlist = pep8,py3
sitepackages = False
skip_missing_interpreters = False
minversion = 3.18.0

[testenv]
passenv =
  HOME
allowlist_externals =
  {toxinidir}/run_tox.sh
  {toxinidir}/fetch_libs.sh
  {toxinidir}/generate_token.sh

[testenv:fetch]
basepython = python3
deps =
commands =
  {toxinidir}/fetch_libs.sh

[testenv:fmt]
description = Apply coding style standards to code
deps =
    black
    isort
commands =
  {toxinidir}/run_tox.sh fmt

[testenv:pep8]
description = Alias for lint
deps =
    black
    flake8<6
    flake8-docstrings
    flake8-copyright
    flake8-builtins
    pyproject-flake8
    pep8-naming
    isort
    codespell
commands =
  {toxinidir}/run_tox.sh pep8

[testenv:py3]
deps =
  -r{toxinidir}/test-requirements.txt
commands =
  {toxinidir}/run_tox.sh py3 {posargs}

[testenv:py310]
deps = {[testenv:py3]deps}
commands =
  {toxinidir}/run_tox.sh py310 {posargs}

[testenv:py311]
deps = {[testenv:py3]deps}
commands =
  {toxinidir}/run_tox.sh py311 {posargs}

[testenv:cover]
deps = {[testenv:py3]deps}
commands =
  {toxinidir}/run_tox.sh cover {posargs}

[testenv:build]
basepython = python3
deps =
commands =
  {toxinidir}/run_tox.sh build {posargs}

[testenv:func-noop]
basepython = python3
deps =
  git+https://github.com/openstack-charmers/zaza.git#egg=zaza
  git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack
  git+https://opendev.org/openstack/tempest.git#egg=tempest
commands =
  functest-run-suite --help

[testenv:func]
basepython = python3
deps = {[testenv:func-noop]deps}
passenv =
  HOME
  PYTHONPATH
setenv =
  # Set TEST_JUJU3 To unpin juju<3 in zaza
  TEST_JUJU3 = 1
  TEST_MODEL_SETTINGS = automatically-retry-hooks=true
  TEST_MAX_RESOLVE_COUNT = 5
  PYTHONPATH = {toxinidir}/tests/local:{env:PYTHONPATH}
commands =
  python3 render_bundles.py
  # Example: functest-run-suite --keep-model --smoke --test-directory=tests/set1
  functest-run-suite --keep-model {posargs}

[testenv:generate-token]
basepython = python3
deps =
  zuul-client
commands =
  {toxinidir}/generate_token.sh