# Classic charm: ./tox.ini # This file is managed centrally by release-tools and should not be modified # within individual charm repos. [tox] envlist = pep8,py37 skipsdist = True [testenv] setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 CHARM_DIR={envdir} AMULET_SETUP_TIMEOUT=5400 install_command = pip install {opts} {packages} commands = stestr run {posargs} whitelist_externals = juju passenv = HOME TERM AMULET_* CS_API_* OS_* deps = -r{toxinidir}/test-requirements.txt [testenv:py35] basepython = python3.5 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:py36] basepython = python3.6 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:py37] basepython = python3.7 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:py3] basepython = python3 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:pep8] basepython = python3 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = flake8 {posargs} hooks unit_tests tests actions lib charm-proof [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 {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} [testenv:func] basepython = python3 commands = functest-run-suite --keep-model [testenv:func-smoke] basepython = python3 commands = functest-run-suite --keep-model --smoke [testenv:func-dev] basepython = python3 commands = functest-run-suite --keep-model --dev [flake8] ignore = E402,E226 exclude = */charmhelpers