# 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]
# useful envs: py27-nodilate, py35, py36, py37, py38, pypy, flake8
envlist = {py27-nodilate,py35,py36,py37,py38}
skip_missing_interpreters = True
minversion = 2.4.0

[testenv]
usedevelop = True
extras =
    nodilate: dev
    !nodilate: dev, dilate
deps =
    pyflakes >= 1.2.3
    coverage: coverage
commands =
    pyflakes setup.py src
    wormhole --version
    !coverage: python -m wormhole.test.run_trial {posargs:wormhole}
    coverage: coverage run --branch -m wormhole.test.run_trial {posargs:wormhole}
    coverage: coverage xml

# on windows, trial is installed as venv/bin/trial.py, not .exe, but (at
# least appveyor) adds .PY to $PATHEXT. So "trial wormhole" might work on
# windows, and certainly does on unix. But to get "coverage run" to work, we
# need a script name (since "python -m twisted.scripts.trial" doesn't have a
# 'if __name__ == "__main__": run()' -style clause), and the script name will
# vary on the platform. So we added a small class (wormhole.test.run_trial)
# that does the right import for us.

[testenv:flake8]
deps = flake8
commands = flake8 src/wormhole

[flake8]
ignore = E741,W503,W504
exclude = .git,__pycache__,docs/source/conf.py,old,build,dist
max-complexity = 40

[testenv:flake8less]
deps = flake8
commands = flake8 --select=E901,E999,F821,F822,F823 src/wormhole

[testenv:docs]
deps =
     sphinx
     recommonmark
skip_install = True
commands =
         sphinx-build -b html -d {toxinidir}/docs/_build/doctrees {toxinidir}/docs {toxinidir}/docs/_build/html
