[tox]
|
envlist =
|
lint,
|
py27,py34,py35,py36,py37,py38,pypy,pypy3,
|
docs,{py2,py3}-cover,coverage,
|
|
[testenv]
|
# Most of these are defaults but if you specify any you can't fall back
|
# to defaults for others.
|
basepython =
|
py27: python2.7
|
py34: python3.4
|
py35: python3.5
|
py36: python3.6
|
py37: python3.7
|
py38: python3.8
|
pypy: pypy
|
pypy3: pypy3
|
py2: python2.7
|
py3: python3.6
|
|
commands =
|
nosetests --with-xunit --xunit-file=nosetests-{envname}.xml {posargs:}
|
|
extras =
|
testing
|
|
[testenv:py27-scaffolds]
|
basepython = python2.7
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:py34-scaffolds]
|
basepython = python3.4
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:py35-scaffolds]
|
basepython = python3.5
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:py36-scaffolds]
|
basepython = python3.6
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:py37-scaffolds]
|
basepython = python3.7
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:pypy-scaffolds]
|
basepython = pypy
|
commands =
|
python src/pyramid/scaffolds/tests.py
|
deps = virtualenv
|
|
[testenv:lint]
|
skip_install = true
|
basepython = python3.6
|
commands =
|
flake8 src/pyramid tests setup.py
|
black --check --diff src/pyramid tests setup.py
|
python setup.py check -r -s -m
|
check-manifest
|
deps =
|
flake8
|
black
|
readme_renderer
|
check-manifest
|
|
[testenv:docs]
|
# pin to 3.5 to match what RTD uses
|
basepython = python3.5
|
whitelist_externals = make
|
commands =
|
make -C docs doctest html epub BUILDDIR={envdir} "SPHINXOPTS=-W -E"
|
extras =
|
docs
|
|
[testenv:pdf]
|
basepython = python3.5
|
whitelist_externals = make
|
commands =
|
make -C docs latexpdf BUILDDIR={envdir} "SPHINXOPTS=-W -E"
|
extras =
|
docs
|
|
# we separate coverage into its own testenv because a) "last run wins" wrt
|
# cobertura jenkins reporting and b) pypy and jython can't handle any
|
# combination of versions of coverage and nosexcover that i can find.
|
[testenv:py2-cover]
|
commands =
|
coverage run {envbindir}/nosetests
|
coverage xml -o coverage-py2.xml
|
setenv =
|
COVERAGE_FILE=.coverage.py2
|
extras =
|
testing
|
|
[testenv:py3-cover]
|
commands =
|
coverage run {envbindir}/nosetests
|
coverage xml -o coverage-py3.xml
|
setenv =
|
COVERAGE_FILE=.coverage.py3
|
extras =
|
testing
|
|
[testenv:coverage]
|
skip_install = true
|
basepython = python3.6
|
commands =
|
coverage erase
|
coverage combine
|
coverage xml
|
coverage report --fail-under=100
|
deps =
|
coverage
|
setenv =
|
COVERAGE_FILE=.coverage
|
|
[testenv:black]
|
skip_install = true
|
basepython = python3.6
|
commands =
|
black src/pyramid tests setup.py
|
deps =
|
black
|
|
[testenv:build]
|
skip_install = true
|
basepython = python3.6
|
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 --no-build-isolation --wheel-dir {toxinidir}/dist --find-links {toxinidir}/dist pyramid
|
|
deps =
|
setuptools
|
wheel
|