You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.9 KiB
143 lines
3.9 KiB
# Source charm: ./tox.ini |
|
# This file is managed centrally by release-tools and should not be modified |
|
# within individual charm repos. See the 'global' dir contents for available |
|
# choices of tox.ini for OpenStack Charms: |
|
# https://github.com/openstack-charmers/release-tools |
|
|
|
[tox] |
|
skipsdist = True |
|
envlist = pep8,py3 |
|
# NOTE: Avoid build/test env pollution by not enabling sitepackages. |
|
sitepackages = False |
|
# NOTE: Avoid false positives by not skipping missing interpreters. |
|
skip_missing_interpreters = False |
|
# NOTES: |
|
# * We avoid the new dependency resolver by pinning pip < 20.3, see |
|
# https://github.com/pypa/pip/issues/9187 |
|
# * Pinning dependencies requires tox >= 3.2.0, see |
|
# https://tox.readthedocs.io/en/latest/config.html#conf-requires |
|
# * It is also necessary to pin virtualenv as a newer virtualenv would still |
|
# lead to fetching the latest pip in the func* tox targets, see |
|
# https://stackoverflow.com/a/38133283 |
|
requires = |
|
pip < 20.3 |
|
virtualenv < 20.0 |
|
setuptools<50.0.0 |
|
|
|
# NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci |
|
minversion = 3.18.0 |
|
|
|
[testenv] |
|
setenv = VIRTUAL_ENV={envdir} |
|
PYTHONHASHSEED=0 |
|
TERM=linux |
|
LAYER_PATH={toxinidir}/layers |
|
INTERFACE_PATH={toxinidir}/interfaces |
|
JUJU_REPOSITORY={toxinidir}/build |
|
passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY |
|
install_command = |
|
{toxinidir}/pip.sh install {opts} {packages} |
|
allowlist_externals = |
|
charmcraft |
|
bash |
|
tox |
|
rename.sh |
|
deps = |
|
-r{toxinidir}/requirements.txt |
|
|
|
[testenv:build] |
|
basepython = python3 |
|
deps = -r{toxinidir}/build-requirements.txt |
|
commands = |
|
charmcraft clean |
|
charmcraft -v build |
|
{toxinidir}/rename.sh |
|
|
|
[testenv:build-reactive] |
|
basepython = python3 |
|
commands = |
|
charm-build --log-level DEBUG --use-lock-file-branches -o {toxinidir}/build/builds src {posargs} |
|
|
|
[testenv:add-build-lock-file] |
|
basepython = python3 |
|
commands = |
|
charm-build --log-level DEBUG --write-lock-file -o {toxinidir}/build/builds src {posargs} |
|
|
|
[testenv:py3] |
|
basepython = python3 |
|
deps = -r{toxinidir}/test-requirements.txt |
|
commands = stestr run --slowest {posargs} |
|
|
|
[testenv:py36] |
|
basepython = python3.6 |
|
deps = -r{toxinidir}/test-requirements.txt |
|
commands = stestr run --slowest {posargs} |
|
|
|
[testenv:py38] |
|
basepython = python3.8 |
|
deps = -r{toxinidir}/test-requirements.txt |
|
commands = stestr run --slowest {posargs} |
|
|
|
[testenv:py39] |
|
basepython = python3.9 |
|
deps = -r{toxinidir}/test-requirements.txt |
|
commands = stestr run --slowest {posargs} |
|
|
|
[testenv:py310] |
|
basepython = python3.10 |
|
deps = -r{toxinidir}/test-requirements.txt |
|
commands = stestr run --slowest {posargs} |
|
|
|
[testenv:pep8] |
|
basepython = python3 |
|
deps = flake8==3.9.2 |
|
charm-tools==2.8.3 |
|
commands = flake8 {posargs} src unit_tests |
|
|
|
[testenv:func-target] |
|
# Hack to get functional tests working in the charmcraft |
|
# world. We should fix this. |
|
basepython = python3 |
|
passenv = HOME TERM CS_* OS_* TEST_* |
|
deps = -r{toxinidir}/src/test-requirements.txt |
|
changedir = {toxinidir}/src |
|
commands = |
|
bash -c "if [ ! -f ../*.charm ]; then echo 'Charm does not exist. Run tox -e build'; exit 1; fi" |
|
tox --version |
|
tox -e func-target {posargs} |
|
|
|
[testenv:cover] |
|
# Technique based heavily upon |
|
# https://github.com/openstack/nova/blob/master/tox.ini |
|
basepython = python3 |
|
deps = -r{toxinidir}/requirements.txt |
|
-r{toxinidir}/test-requirements.txt |
|
setenv = |
|
{[testenv]setenv} |
|
PYTHON=coverage run |
|
commands = |
|
coverage erase |
|
stestr run --slowest {posargs} |
|
coverage combine |
|
coverage html -d cover |
|
coverage xml -o cover/coverage.xml |
|
coverage report |
|
|
|
[coverage:run] |
|
branch = True |
|
concurrency = multiprocessing |
|
parallel = True |
|
source = |
|
. |
|
omit = |
|
.tox/* |
|
*/charmhelpers/* |
|
unit_tests/* |
|
|
|
[testenv:venv] |
|
basepython = python3 |
|
commands = {posargs} |
|
|
|
[flake8] |
|
# E402 ignore necessary for path append before sys module import in actions |
|
ignore = E402,W503,W504
|
|
|