blob: 350a1fc114fe79fd5fab38ce2f4fe58cd24ddcd1 [file] [log] [blame]
# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
[tox]
envlist = lint,py3
skipsdist=True
[pytest]
markers =
serial: mark a test that must run by itself
[testenv]
basepython=python3
usedevelop=True
# for testing with other python versions
commands = py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs}
passenv =
HOME
TEST_AGENTS
deps =
asynctest
ipdb
mock
pytest
pytest-asyncio
pytest-xdist
Twine
# use fork to pick up fix for https://github.com/aaugustin/websockets/pull/528
git+https://github.com/johnsca/websockets@bug/client-redirects#egg=websockets
[testenv:py3]
# default tox env excludes integration and serial tests
commands =
# These need to be installed in a specific order
pip install urllib3==1.22
pip install pylxd
py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs}
[testenv:lint]
envdir = {toxworkdir}/py3
commands =
flake8 --ignore E501,W504 {posargs} juju tests
deps =
flake8
[testenv:integration]
envdir = {toxworkdir}/py3
commands =
# These need to be installed in a specific order
pip install urllib3==1.22
pip install pylxd
py.test --tb native -ra -v -s -n auto -k 'integration' -m 'not serial' {posargs}
[testenv:serial]
# tests that can't be run in parallel
envdir = {toxworkdir}/py3
commands = py.test --tb native -ra -v -s {posargs:-m 'serial'}
[testenv:example]
envdir = {toxworkdir}/py3
commands = python {posargs}
[flake8]
exclude = juju/client/_*