[tox] envlist = pep8,py3 skipsdist = True # NOTE(beisner): Avoid build/test env pollution by not enabling sitepackages. sitepackages = False # NOTE(beisner): Avoid false positives by not skipping missing interpreters. skip_missing_interpreters = False [testenv] # We use tox mainly for virtual environment management for test requirements # and do not install the charm code as a Python package into that environment. # Ref: https://tox.wiki/en/latest/config.html#skip_install skip_install = True setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 commands = stestr run {posargs} [testenv:py38] basepython = python3.8 deps = -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:py310] basepython = python3.10 deps = -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:py311] basepython = python3.11 deps = -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:py3] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:pep8] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = flake8 {posargs} [testenv:cover] # Technique based heavily upon # https://github.com/openstack/nova/blob/master/tox.ini basepython = python3 deps = -r{toxinidir}/test-requirements.txt setenv = {[testenv]setenv} PYTHON=coverage run commands = coverage erase stestr run {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] ignore = E402,E226,W504