Previously, we were using --pyargs to make sure pytest would run the test suite against the installed package, because our tests were embedded inside the package and hence importable. Now that they are placed in an external folder, that option is not needed. pytest without options will run all the test modules from the default test paths as defined in setup.cfg, i.e Tests/ folder. The tests will be run against the installed fontTools in the current tox environment. We also pass {posargs} in the 'htmlcov' tox env, to allow passing extra options after `tox -e htmlcov -- {posargs}` to the `coverage html` command.
65 lines
1.6 KiB
INI
65 lines
1.6 KiB
INI
[tox]
|
|
envlist = py{27,35,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.5}
|
|
deps =
|
|
coverage>=4.3
|
|
skip_install = true
|
|
commands =
|
|
coverage combine
|
|
coverage html {posargs}
|
|
|
|
[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.5}
|
|
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
|
|
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
|