# Source charm (with amulet): ./src/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] envlist = pep8 skipsdist = True # 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 # NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci minversion = 3.2.0 [testenv] setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 CHARM_DIR={envdir} AMULET_SETUP_TIMEOUT=5400 whitelist_externals = juju passenv = HOME TERM AMULET_* CS_* OS_* TEST_* deps = -r{toxinidir}/test-requirements.txt install_command = pip install {opts} {packages} [testenv:pep8] basepython = python3 commands = charm-proof [testenv:func-noop] # DRY RUN - For Debug basepython = python2.7 commands = bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" -n --no-destroy [testenv:func] # Run all gate tests which are +x (expected to always pass) basepython = python2.7 commands = bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" --no-destroy [testenv:func-smoke] # Run a specific test as an Amulet smoke test (expected to always pass) basepython = python2.7 commands = bundletester -vl DEBUG -r json -o func-results.json gate-basic-bionic-stein --no-destroy [testenv:func-dev] # Run all development test targets which are +x (may not always pass!) basepython = python2.7 commands = bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dev-*" --no-destroy [testenv:venv] commands = {posargs}