# Note: Run "python bootstrap.py" before running Tox, to generate metadata.
#
# To run Tox against all supported Python interpreters, you can set:
#
# export TOXENV='py27,py3{4,5,6},pypy,pypy3'

[tox]
envlist=python

[testenv]
deps=-rtests/requirements.txt
# Changed from default (`python -m pip ...`)
# to prevent the current working directory
# from being added to `sys.path`.
install_command=python -c 'import sys; sys.path.remove(""); from pkg_resources import load_entry_point; load_entry_point("pip", "console_scripts", "pip")()' install {opts} {packages}
# Same as above.
list_dependencies_command={envbindir}/pip freeze --all
setenv=COVERAGE_FILE={toxworkdir}/.coverage.{envname}
# TODO: The passed environment variables came from copying other tox.ini files
# These should probably be individually annotated to explain what needs them.
passenv=APPDATA HOMEDRIVE HOMEPATH windir APPVEYOR APPVEYOR_* CI CODECOV_* TRAVIS TRAVIS_* NETWORK_REQUIRED
commands=pytest --cov-config={toxinidir}/tox.ini --cov-report= {posargs}
usedevelop=True


[testenv:coverage]
description=Combine coverage data and create report
deps=coverage
skip_install=True
changedir={toxworkdir}
setenv=COVERAGE_FILE=.coverage
commands=coverage erase
         coverage combine
         coverage {posargs:xml}

[testenv:codecov]
description=[Only run on CI]: Upload coverage data to codecov
deps=codecov
skip_install=True
commands=codecov -X gcov --file {toxworkdir}/coverage.xml

[testenv:docs]
deps = -r{toxinidir}/docs/requirements.txt
skip_install=True
commands =
    python {toxinidir}/bootstrap.py
    sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/build/html
    sphinx-build -W -b man -d {envtmpdir}/doctrees docs docs/build/man

[coverage:run]
source=
	pkg_resources
	setuptools
omit=
	*/_vendor/*
