# 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

[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

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

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

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

[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@libjuju-3.1#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}
setenv =
    TEST_MODEL_SETTINGS = automatically-retry-hooks=true
    TEST_MAX_RESOLVE_COUNT = 5
commands =
    python3 render_bundles.py
    # Example: functest-run-suite --keep-model --smoke --test-directory=tests/set1
    functest-run-suite --keep-model {posargs}