blob: 2983975bd3fa9a0235bc9065651cb9f9e93c1e2c [file] [log] [blame]
[tox]
minversion = 3.0
envlist = lint, py3{6,7,8,9}-cov, htmlcov
skip_missing_interpreters=true
[testenv]
setenv =
cy: FONTTOOLS_WITH_CYTHON=1
# use 'download = true' to have tox install the latest pip inside the virtualenv.
# We need this to be able to install skia-pathops on Linux, which uses a
# relatively recent 'manylinux2014' platform tag.
# https://github.com/tox-dev/tox/issues/791#issuecomment-518713438
download = true
deps =
cov: coverage>=4.3
pytest
pytest-randomly
-rrequirements.txt
!nolxml: lxml==4.6.1
extras =
ufo
woff
unicode
interpolatable
!nolxml: lxml
commands =
cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert COMPILED"
!cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert not COMPILED"
# test with or without coverage, passing extra positonal args to pytest
cov: coverage run --parallel-mode -m pytest {posargs}
!cov: pytest {posargs:Tests fontTools}
[testenv:htmlcov]
deps =
coverage>=4.3
skip_install = true
commands =
coverage combine
coverage html
[testenv:lint]
deps =
-r dev-requirements.txt
skip_install = true
commands =
mypy
flake8
[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