# 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]
skipsdist = True
#envlist = pep8, py{27,35}
# requirement functools32 is not installed for py35
envlist = pep8,py27

[testenv]
install_command = pip install -U {opts} {packages}
deps =
    pytest>=2.9
    mock>=1.2
    git+https://github.com/dis-xcom/reclass-tools
usedevelop = False
commands = py.test -s -vvv tests

[testenv:venv]
commands = {posargs}

[testenv:pep8]
deps = flake8
usedevelop = False
exclude = .venv,.git,.tox,.chache,.lib,dist,doc,*egg,build,local*
commands =
    flake8 {posargs:.}

[flake8]
exclude = .venv,.git,.tox,dist,doc,*egg,build,local,./lib
show-pep8 = True
show-source = True
count = True
