[tox]
envlist = py{27,36}-cov, htmlcov

[testenv]
basepython =
    py27: {env:TOXPYTHON:python2.7}
    pypy: {env:TOXPYTHON:pypy}
    py34: {env:TOXPYTHON:python3.4}
    py35: {env:TOXPYTHON:python3.5}
    py36: {env:TOXPYTHON:python3.6}
deps =
    cov: coverage>=4.3
    pytest
    -rrequirements.txt
install_command =
    pip install -v {opts} {packages}
commands =
    # run the test suite against the package installed inside tox env.
    # We use parallel mode and then combine later so that coverage.py will take
    # paths like .tox/py36/lib/python3.6/site-packages/fontTools and collapse
    # them into Lib/fontTools.
    cov: coverage run --parallel-mode -m pytest {posargs}
    nocov: pytest {posargs}

[testenv:htmlcov]
basepython = {env:TOXPYTHON:python3.6}
deps =
    coverage>=4.3
skip_install = true
commands =
    coverage combine
    coverage html

[testenv:codecov]
passenv = *
basepython = {env:TOXPYTHON:python}
deps =
    coverage>=4.3
    codecov
skip_install = true
ignore_outcome = true
commands =
    coverage combine
    codecov --env TOXENV

[testenv:bdist]
basepython = {env:TOXPYTHON:python3.6}
deps =
    pygments
    docutils
    setuptools
    wheel
skip_install = true
install_command =
    # make sure we use the latest setuptools and wheel
    pip install --upgrade {opts} {packages}
whitelist_externals =
    rm
commands =
    # check metadata and rst long_description
    python setup.py check --restructuredtext --strict
    # clean up build/ and dist/ folders
    rm -rf {toxinidir}/dist
    python setup.py clean --all
    # build sdist
    python setup.py sdist --dist-dir {toxinidir}/dist
    # build wheel from sdist
    pip wheel -v --no-deps --no-index --wheel-dir {toxinidir}/dist --find-links {toxinidir}/dist fonttools
