sunbeam-charms/tox.ini
Samuel Allan e7853633fa Allow running unit tests on a single charm
This allows scoping a tox run of py3* and cover enviroments
to a single charm or ops-sunbeam, to facilitate faster testing.

Usage examples:

```
tox -e py3                   # test all
tox -e py3 -- ops-sunbeam    # just the ops sunbeam lib
tox -e py3 -- barbican-k8s   # only the barbican charm

tox -e cover
tox -e cover -- ops-sunbeam
tox -e cover -- barbican-k8s
```

Closes-Bug: #2050840

Change-Id: Ieb3cd5ad85ee7a04a320cc41fbc3ad406e034a57
2024-01-30 11:12:13 +10:30

97 lines
1.9 KiB
INI

# 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 {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@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}
passenv =
PYTHONPATH
setenv =
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}