summaryrefslogtreecommitdiff
path: root/tox.ini
diff options
context:
space:
mode:
authorGábor Bernát <gaborjbernat@gmail.com>2018-06-11 10:10:42 +0100
committerGitHub <noreply@github.com>2018-06-11 10:10:42 +0100
commit4e7d9091f1f7ffd8042936fe25cd2f66e196f57c (patch)
tree88d4d446b6fa164e281cce3740ec315b2aa2d8d2 /tox.ini
parentf5707949159ffee516bf2e01a11d438f7ad49434 (diff)
downloadtox-git-4e7d9091f1f7ffd8042936fe25cd2f66e196f57c.tar.gz
[#826] switch to source layout (#827)
* move to src layout * fix coverage * PR feedback
Diffstat (limited to 'tox.ini')
-rw-r--r--tox.ini47
1 files changed, 32 insertions, 15 deletions
diff --git a/tox.ini b/tox.ini
index 46a892b8..35807d42 100644
--- a/tox.ini
+++ b/tox.ini
@@ -12,20 +12,25 @@ skip_missing_interpreters = true
[testenv]
description = run the tests with pytest under {basepython}
-setenv = COVERAGE_FILE={toxworkdir}/.coverage.{envname}
+setenv = PIP_DISABLE_VERSION_CHECK = 1
+ COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
passenv = http_proxy https_proxy no_proxy SSL_CERT_FILE TOXENV CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* CODECOV_*
+deps =
extras = testing
-commands = pytest {posargs:--cov-config="{toxinidir}/tox.ini" --cov="{envsitepackagesdir}/tox" --timeout=180 tests}
+changedir = {toxinidir}/tests
+commands = pytest {posargs:--cov="{envsitepackagesdir}/tox" --cov-config="{toxinidir}/tox.ini" --timeout=180 .}
[testenv:docs]
description = invoke sphinx-build to build the HTML docs and check that all links are valid
whitelist_externals = sphinx-build
basepython = python3.6
extras = docs
+changedir = {toxinidir}
commands = sphinx-build -d "{toxworkdir}/docs_doctree" doc "{toxworkdir}/docs_out" --color -W -bhtml
[testenv:fix-lint]
+description = format the code base to adhere to our styles, and complain about what we cannot do automatically
basepython = python3.6
passenv = {[testenv]passenv}
HOMEPATH
@@ -33,26 +38,35 @@ passenv = {[testenv]passenv}
# `error setting certificate verify locations` error
PROGRAMDATA
extras = lint
-description = run static analysis and style check using flake8
+deps = pre-commit == 1.10.1
+skip_install = True
+changedir = {toxinidir}
commands = pre-commit run --all-files --show-diff-on-failure
python -c 'print("hint: run {envdir}/bin/pre-commit install to add checks as pre-commit hook")'
[testenv:coverage]
-description = combine coverage data and create reports
-deps = coverage
+description = [run locally after tests]: combine coverage data and create report;
+ generates a diff coverage against origin/master (can be changed by setting DIFF_AGAINST env var)
+deps = {[testenv]deps}
+ coverage >= 4.4.1, < 5
+ diff_cover
skip_install = True
-changedir = {toxworkdir}
-setenv = COVERAGE_FILE=.coverage
+passenv = {[testenv]passenv}
+ DIFF_AGAINST
+setenv = COVERAGE_FILE={toxworkdir}/.coverage
+changedir = {toxinidir}
commands = coverage erase
coverage combine
- coverage report --rcfile="{toxinidir}/tox.ini"
- coverage xml
+ coverage report -m
+ coverage xml -o {toxworkdir}/coverage.xml
+ diff-cover --compare-branch {env:DIFF_AGAINST:origin/master} {toxworkdir}/coverage.xml
[testenv:codecov]
description = [only run on CI]: upload coverage data to codecov (depends on coverage running first)
deps = codecov
skip_install = True
+changedir = {toxinidir}
commands = codecov --file "{toxworkdir}/coverage.xml"
[testenv:exit_code]
@@ -61,6 +75,7 @@ commands = codecov --file "{toxworkdir}/coverage.xml"
basepython = python3.6
description = commands with several exit codes
skip_install = True
+changedir = {toxinidir}
commands = python3.6 -c "import sys; sys.exit(139)"
[testenv:pra]
@@ -68,6 +83,7 @@ platform = linux
passenv = *
description = "personal release assistant" - see HOWTORELEASE.rst
extras = publish, docs
+changedir = {toxinidir}
commands = sphinx-build -d "{toxworkdir}/docs_doctree" doc "{toxworkdir}/docs_out" --color -W -blinkcheck
"{toxinidir}/tasks/pra.sh" {posargs}
@@ -81,6 +97,7 @@ extras = testing, docs
# required to make looponfail reload on every source code change
usedevelop = True
basepython = python3.6
+changedir = {toxinidir}
commands = python -m pip list --format=columns
python -c 'import sys; print(sys.executable)'
@@ -90,7 +107,7 @@ max-line-length = 99
ignore = E203, W503
[coverage:run]
-omit = tox/__main__.py
+branch = true
[coverage:report]
skip_covered = True
@@ -98,13 +115,13 @@ show_missing = True
exclude_lines = if __name__ == ["']__main__["']:
[coverage:paths]
-source = tox
- {toxworkdir}/*/lib/python*/site-packages/tox
- {toxworkdir}/*/Lib/site-packages/tox
- {toxworkdir}/pypy*/site-packages/tox
+source = src/tox
+ .tox/*/lib/python*/site-packages/tox
+ .tox/*/Lib/site-packages/tox
+ .tox/pypy*/site-packages/tox
[pytest]
-addopts = -rsxX -vvv --showlocals
+addopts = -rsxX --showlocals
rsyncdirs = tests tox
looponfailroots = tox tests
norecursedirs = .hg .tox