Michael Merickel
2018-10-18 e4c0570d5c67ddf0ad9502169b59475ba0784d82
tox.ini
@@ -1,63 +1,151 @@
[tox]
envlist =
    py26,py27,py32,py33,py34,pypy,pypy3,
    {py2,py3}-docs,
    {py2,py3}-cover,coverage
    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 =
    py26: python2.6
    py27: python2.7
    py32: python3.2
    py33: python3.3
    py34: python3.4
    py35: python3.5
    py36: python3.6
    py37: python3.7
    py38: python3.8
    pypy: pypy
    pypy3: pypy3
    py2: python2.7
    py3: python3.4
    py3: python3.6
commands =
    pip install pyramid[testing]
    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 =
    pip install pyramid[testing]
    coverage run --source=pyramid {envbindir}/nosetests
    coverage run {envbindir}/nosetests
    coverage xml -o coverage-py2.xml
setenv =
    COVERAGE_FILE=.coverage.py2
extras =
    testing
[testenv:py3-cover]
commands =
    pip install pyramid[testing]
    coverage run --source=pyramid {envbindir}/nosetests
    coverage run {envbindir}/nosetests
    coverage xml -o coverage-py3.xml
setenv =
    COVERAGE_FILE=.coverage.py3
[testenv:py2-docs]
whitelist_externals = make
commands =
    pip install pyramid[docs]
    make -C docs html
[testenv:py3-docs]
whitelist_externals = make
commands =
    pip install pyramid[docs]
    make -C docs html
extras =
    testing
[testenv:coverage]
basepython = python3.4
commands =
skip_install = true
basepython = python3.6
commands =
    coverage erase
    coverage combine
    coverage xml
    coverage report --show-missing --fail-under=100
    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