[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