# 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,py35
skipsdist=True

[testenv]
basepython=python3
usedevelop=True
# for testing with other python versions
commands = py.test -ra -v -s -x -n auto {posargs}
passenv =
    HOME
deps =
    pytest
    pytest-asyncio
    pytest-xdist
    mock
    asynctest
    ipdb

[testenv:py35]
# default tox env excludes integration tests
commands = py.test -ra -v -s -x -n auto -k 'not integration' {posargs}

[testenv:lint]
envdir = {toxworkdir}/py35
commands =
    flake8 --ignore E501 {posargs} juju
deps =
    flake8

[testenv:integration]
envdir = {toxworkdir}/py35

[flake8]
exclude = juju/client/_*
