Skip to content

Commit

Permalink
[#826] switch to source layout (#827)
Browse files Browse the repository at this point in the history
* move to src layout
* fix coverage
* PR feedback
  • Loading branch information
gaborbernat authored Jun 11, 2018
1 parent f570794 commit 4e7d909
Show file tree
Hide file tree
Showing 16 changed files with 35 additions and 17 deletions.
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ repos:
rev: v1.0.1
hooks:
- id: seed-isort-config
args: [--application-directories, src]
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.4
hooks:
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ def main():
platforms=["unix", "linux", "osx", "cygwin", "win32"],
author="holger krekel",
author_email="holger@merlinux.eu",
packages=["tox"],
packages=setuptools.find_packages("src"),
package_dir={"": "src"},
entry_points={
"console_scripts": ["tox=tox:cmdline", "tox-quickstart=tox._quickstart:main"]
},
Expand All @@ -59,7 +60,6 @@ def main():
"pytest-xdist",
],
"docs": ["sphinx >= 1.6.3, < 2", "towncrier >= 17.8.0"],
"lint": ["pre-commit == 1.8.2"],
"publish": ["devpi", "twine"],
},
classifiers=[
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
47 changes: 32 additions & 15 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,47 +12,61 @@ 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
# without PROGRAMDATA cloning using git for Windows will fail with an
# `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]
Expand All @@ -61,13 +75,15 @@ 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]
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}

Expand All @@ -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)'

Expand All @@ -90,21 +107,21 @@ max-line-length = 99
ignore = E203, W503

[coverage:run]
omit = tox/__main__.py
branch = true

[coverage:report]
skip_covered = True
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
Expand Down

0 comments on commit 4e7d909

Please sign in to comment.