[tox] envlist = clean,setup,safety,style,docs, py34-django111, py34-django20, py35-django111, py35-django20, py36-django111, py36-django20, py37-dev-django111, py37-dev-django20, pypy-django111, pypy-django20, report skip_missing_interpreters = true [testenv] setenv = PYTHONPATH = {toxinidir}:{toxinidir}/src:{toxinidir}/tests PYTHONUNBUFFERED=yes commands = {posargs:pytest --cov --cov-report=term-missing -vv runtests.py tests} deps = django111: Django>=1.11,<1.12 django20: Django>=2.0,<2.1 -r{toxinidir}/requirements/test.txt passenv = * usedevelop = false whitelist_externals = tox [testenv:test] description = Run all the Python/Django test environments. skip_install = true commands = tox -e py34-django111,py34-django20,py35-django111,py35-django20,py36-django111,py36-django20,py37-dev-django111,py37-dev-django20,pypy-django18,pypy-django19,pypy-django111,pypy-django20, tox -e report [testenv:dtest] description = Run all the Python/Django test environments in parallel. skip_install = true deps = detox commands = detox -e py34-django111,py34-django20,py35-django111,py35-django20,py36-django111,py36-django20,py37-dev-django111,py37-dev-django20,pypy-django18,pypy-django19,pypy-django111,pypy-django20, tox -e report [testenv:detox] description = Run all the environments in parallel. skip_install = true deps = detox commands = detox -e clean,setup,safety,style,docs,py34-django111,py34-django20,py35-django111,py35-django20,py36-django111,py36-django20,py37-dev-django111,py37-dev-django20,pypy-django18,pypy-django19,pypy-django111,pypy-django20, tox -e report [testenv:check] description = Run all the check environments. skip_install = true commands = tox -e setup,safety,style,docs [testenv:dcheck] description = Run all the check environments in parallel. skip_install = true deps = detox commands = detox -e setup,safety,style,docs [testenv:setup] description = Check that the package will be correctly installed and correctly rendered on PyPI. skip_install = true deps = docutils check-manifest readme-renderer pygments commands = python setup.py check --strict --metadata --restructuredtext check-manifest {toxinidir} [testenv:safety] description = Check that the requirements versions do not have security vulnerabilities. skip_install = true deps = bandit safety commands = safety check -r {toxinidir}/requirements/base.txt bandit -r {toxinidir}/src/hope [testenv:style] description = Check the code style. deps = isort prospector[with_everything] commands = isort --diff --recursive src/hope tests setup.py prospector {toxinidir} [testenv:docs] description = Build the documentation locally. skip_install = true setenv = SPELLCHECK=1 deps = -r{toxinidir}/docs/requirements.txt sphinxcontrib-spelling pyenchant commands = sphinx-build {posargs:-E} -b html docs dist/docs sphinx-build -b spelling -w /dev/null docs dist/docs sphinx-build -b linkcheck -w /dev/null docs dist/docs [testenv:report] description = Create coverage report. deps = coverage skip_install = true commands = coverage combine --append coverage report coverage html [testenv:clean] description = Delete coverage report. commands = coverage erase skip_install = true deps = coverage [testenv:codacy] description = Upload coverage report to codacy. deps = codacy-coverage coverage skip_install = true commands = coverage combine --append coverage report coverage xml --ignore-errors python-codacy-coverage []