[tox] minversion = 3.0 envlist = py{27,37}-cov, htmlcov [testenv] deps = cov: coverage>=4.3 pytest pytest-randomly -rrequirements.txt extras = ufo woff unicode interpolatable !nolxml: lxml commands = # test with or without coverage, passing extra positonal args to pytest cov: coverage run --parallel-mode -m pytest {posargs:Tests fontTools} !cov: pytest {posargs:Tests fontTools} [testenv:htmlcov] deps = coverage>=4.3 skip_install = true commands = coverage combine coverage html [testenv:codecov] passenv = * deps = coverage>=4.3 codecov skip_install = true ignore_outcome = true commands = coverage combine codecov --env TOXENV [testenv:package_readme] description = check that the long description is valid (need for PyPi) deps = twine >= 1.12.1 pip >= 18.0.0 skip_install = true extras = commands = pip wheel -w {envtmpdir}/build --no-deps . twine check {envtmpdir}/build/* [testenv:bdist] deps = 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 = # clean up build/ and dist/ folders python -c 'import shutil; shutil.rmtree("dist", ignore_errors=True)' 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 [testenv:pypi] deps = {[testenv:bdist]deps} twine skip_install = true passenv = TWINE_USERNAME TWINE_PASSWORD commands = {[testenv:bdist]commands} twine upload dist/*.whl dist/*.zip