[tox] envlist = pep8,py2,py3 skipsdist = true sitepackages = false # NOTE(beisner): Avoid false positives by not skipping missing interpreters. # NOTE(beisner): Avoid pollution by not enabling sitepackages. # NOTE(beisner): the 'py3' env is useful to "just give me whatever py3 is here." # NOTE(beisner): the 'py3x' envs are useful to use a distinct interpreter version (will fail if not found) ignore_basepython_conflict = true # 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 install_command = {toxinidir}/pip.sh install {opts} {packages} passenv = HOME TERM commands = nosetests -s --nologcapture {posargs} --with-coverage --cover-package=charmhelpers tests/ deps = -r{toxinidir}/test-requirements.txt [testenv:py2] basepython = python deps = -r{toxinidir}/test-requirements.txt [testenv:py3] basepython = python3 deps = -r{toxinidir}/test-requirements.txt [testenv:py34] basepython = python3.4 deps = -r{toxinidir}/test-requirements.txt [testenv:py35] basepython = python3.5 deps = -r{toxinidir}/test-requirements.txt [testenv:py36] basepython = python3.6 deps = -r{toxinidir}/test-requirements.txt [testenv:py37] basepython = python3.7 deps = -r{toxinidir}/test-requirements.txt [testenv:py38] basepython = python3.8 deps = -r{toxinidir}/test-requirements.txt [testenv:pep8] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = flake8 -v {posargs} charmhelpers tests tools [flake8] ignore = E402,E501,E741,E722,W504