| [tox] |
| minversion = 3.0 |
| envlist = mypy, 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:mypy] |
| deps = |
| -r dev-requirements.txt |
| skip_install = true |
| commands = |
| mypy |
| |
| [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 |