From f78bca551d425e5372eb66ff938e7593b15e1dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 21 Jun 2017 13:01:48 -0700 Subject: [PATCH 01/16] Clean up: * Use absolute paths for fixed locations. * Sort * Remove items that should be nested into .tox/ now. --- .gitignore | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index fd7480ed0..dc06a9d11 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,7 @@ *.pyc -_trial_temp -build -htmlcov -.coverage -*.egg-info -.tox/ -docs/_build/ -.DS_Store -dist/ *~ +.DS_Store +/.tox/ +/docs/_build/ +/src/*.egg-info +__pycache__ From 65a734464667f748a6304f2cf00baf4d08cfeed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 21 Jun 2017 13:02:51 -0700 Subject: [PATCH 02/16] [paths] section isn't needed. Add [report] section. --- .coveragerc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.coveragerc b/.coveragerc index 9756cea25..f2654f640 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,11 +1,8 @@ [run] -source = - klein branch = True +source = klein - -[paths] -source = - src/ - .tox/*/lib/python*/site-packages/ - .tox/pypy*/site-packages/ +[report] +fail_under = 100 +precision = 2 +show_missing = True From fd0e2f99fa77e68dbc2ec671d149b10fa9698144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 21 Jun 2017 13:09:34 -0700 Subject: [PATCH 03/16] Clean up tox config: * twistedchecker-diff shouldn't be in default envlist, as it only works in CI. * "trial" envs now just run trial. "coverage" envs run trial under coverage. * Clean up coverage runs so that we aren't littering the source tree with a bunch of .coverage.* files. * Add coverage_combine env which gathers coverage from other runs and reports on the total result. * Add codecov env to publish to codecov. Change Travis config: * Use "coverage" envs. * Publish to codecov after each test run, instead of one combined publish if they all succeed. --- .travis.yml | 47 +++++++++----------- tox.ini | 125 ++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 136 insertions(+), 36 deletions(-) diff --git a/.travis.yml b/.travis.yml index b17edc7fe..4f5c2ad01 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,37 +27,37 @@ branches: matrix: include: # PyPy (Python 2.7) - - env: TOXENV=trial-pypy-tw155 PYPY_VERSION=5.7.1 - - env: TOXENV=trial-pypy-tw160 PYPY_VERSION=5.7.1 - - env: TOXENV=trial-pypy-twcurrent PYPY_VERSION=5.7.1 - - env: TOXENV=trial-pypy-twtrunk PYPY_VERSION=5.7.1 + - env: TOXENV=coverage-pypy-tw155,codecov PYPY_VERSION=5.7.1 + - env: TOXENV=coverage-pypy-tw160,codecov PYPY_VERSION=5.7.1 + - env: TOXENV=coverage-pypy-twcurrent,codecov PYPY_VERSION=5.7.1 + - env: TOXENV=coverage-pypy-twtrunk,codecov PYPY_VERSION=5.7.1 - python: 2.7 - env: TOXENV=trial-py27-tw155 + env: TOXENV=coverage-py27-tw155 - python: 2.7 - env: TOXENV=trial-py27-tw160 + env: TOXENV=coverage-py27-tw160,codecov - python: 2.7 - env: TOXENV=trial-py27-twcurrent + env: TOXENV=coverage-py27-twcurrent,codecov - python: 2.7 - env: TOXENV=trial-py27-twtrunk + env: TOXENV=coverage-py27-twtrunk,codecov - python: 3.4 - env: TOXENV=trial-py34-tw155 + env: TOXENV=coverage-py34-tw155,codecov - python: 3.4 - env: TOXENV=trial-py34-tw160 + env: TOXENV=coverage-py34-tw160,codecov - python: 3.4 - env: TOXENV=trial-py34-twcurrent + env: TOXENV=coverage-py34-twcurrent,codecov - python: 3.4 - env: TOXENV=trial-py34-twtrunk + env: TOXENV=coverage-py34-twtrunk,codecov - python: 3.5 - env: TOXENV=trial-py35-tw155 + env: TOXENV=coverage-py35-tw155,codecov - python: 3.5 - env: TOXENV=trial-py35-tw160 + env: TOXENV=coverage-py35-tw160,codecov - python: 3.5 - env: TOXENV=trial-py35-twcurrent + env: TOXENV=coverage-py35-twcurrent,codecov - python: 3.5 - env: TOXENV=trial-py35-twtrunk + env: TOXENV=coverage-py35-twtrunk,codecov - python: 3.5 env: TOXENV=flake8 @@ -70,11 +70,10 @@ matrix: allow_failures: # Tests against Twisted trunk are allow to fail, as they are not supported. - - env: TOXENV=trial-py27-twtrunk - - env: TOXENV=trial-py33-twtrunk - - env: TOXENV=trial-py34-twtrunk - - env: TOXENV=trial-py35-twtrunk - - env: TOXENV=trial-pypy-twtrunk + - env: TOXENV=coverage-pypy-twtrunk + - env: TOXENV=coverage-py27-twtrunk + - env: TOXENV=coverage-py34-twtrunk + - env: TOXENV=coverage-py35-twtrunk # This is not yet required. - env: TOXENV=twistedchecker-diff @@ -89,9 +88,3 @@ install: script: - ./.travis/run tox - - -after_success: - - pip install coverage codecov - - coverage combine - - codecov diff --git a/tox.ini b/tox.ini index 8ed3cb807..343161b82 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,12 @@ [tox] envlist = - flake8, twistedchecker-diff + flake8 # Twisted 15.5 is the first version to support Python 3 (3.3+) - trial-py{27,py,34,35,36}-tw{155,166,current,trunk} + coverage-py{27,py,34,35,36}-tw{155,166,current,trunk} + + coverage_combine docs, docs-linkcheck @@ -12,7 +14,7 @@ skip_missing_interpreters = True ## -# Default testenv +# Build (default environment) ## [testenv] @@ -24,10 +26,8 @@ basepython = py35: python3.5 py36: python3.6 -deps = - coverage - mock +deps = tw150: Twisted==15.0 tw151: Twisted==15.1 tw152: Twisted==15.2 @@ -45,13 +45,55 @@ deps = twcurrent: Twisted twtrunk: https://github.com/twisted/twisted/archive/trunk.zip + {trial,coverage}: mock + + coverage: coverage + + +whitelist_externals = + coverage: cp + coverage: mkdir + + +passenv = + PATH + LANG LC_ALL + CI CONTINUOUS_INTEGRATION + TRAVIS TRAVIS_* _system_* + CODECOV_OPTIONS + + +setenv = + PIP_DISABLE_PIP_VERSION_CHECK=1 + + coverage: COVERAGE_FILE={toxworkdir}/coverage/coverage.{envname} + {coverage_combine,codecov}: COVERAGE_FILE={toxworkdir}/coverage/coverage + + {coverage,coverage_combine}: COVERAGE_HTML={envlogdir}/coverage_report_html + {coverage,coverage_combine,codecov}: COVERAGE_XML={envlogdir}/coverage_report.xml + + commands = "{toxinidir}/.travis/environment" - coverage run -p "{envdir}/bin/trial" {posargs:klein} + + # Run trial without coverage + trial: trial --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} + + coverage: mkdir -p "{toxworkdir}/coverage" + coverage: coverage run --rcfile="{toxinidir}/.coveragerc" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} + + # Copy aside coverage data for each test environment in case we want to look at it later + coverage: cp "{env:COVERAGE_FILE}" "{envlogdir}/coverage" + + # Run coverage reports, ignore exit status + coverage: - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" + coverage: - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" + coverage: - coverage report --rcfile="{toxinidir}/.coveragerc" --skip-covered --omit "*/test/*" + ## -# Run flake8 +# Flake8 linting ## [testenv:flake8] @@ -71,6 +113,7 @@ basepython = python3.5 commands = "{toxinidir}/.travis/environment" + flake8 {posargs:src/klein} @@ -102,6 +145,7 @@ application-import-names = klein max-complexity = 21 + ## # Run twistedchecker ## @@ -114,9 +158,11 @@ basepython = python2.7 commands = "{toxinidir}/.travis/environment" + twistedchecker {posargs:klein} + ## # Run twistedchecker on changes relative to master ## @@ -131,7 +177,68 @@ basepython = python2.7 commands = "{toxinidir}/.travis/environment" - {toxinidir}/.travis/twistedchecker-diff {posargs:klein} + + "{toxinidir}/.travis/twistedchecker-diff" {posargs:klein} + + + +## +# Combine coverage reports +## + +[testenv:coverage_combine] + +basepython = python3.5 + +skip_install = True + +deps = coverage + + +whitelist_externals = + cp + + +commands = + "{toxinidir}/.travis/environment" + + coverage combine --append + + # Copy aside coverage data for each test environment in case we want to look at it later + cp "{env:COVERAGE_FILE}" "{envlogdir}/coverage" + + # Run coverage reports, ignore exit status + - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" + - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" + + # Don't ignore exit status here; this is our failure status if coverage is insufficient. + coverage report --rcfile="{toxinidir}/.coveragerc" --omit "*/test/*" + + + +## +# Publish to Codecov +## + +[testenv:codecov] + +basepython = python3.5 + +skip_install = True + +deps = codecov + + +commands = + "{toxinidir}/.travis/environment" + + coverage combine --append + + # Generate XML and publish to codecov.io + # Ignore errors generating coverage XML, which may be due to < 100% coverage; we still want to publish + - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" + codecov --required --file="{env:COVERAGE_XML}" {env:CODECOV_OPTIONS:} + ## From 77390bbf7963cfd9a1232380c4ef4470683dbdc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 13:53:59 -0700 Subject: [PATCH 04/16] Better comment --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 343161b82..2a9a8d137 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ skip_missing_interpreters = True ## -# Build (default environment) +# Default environment: unit tests ## [testenv] From 7aac72dea5336363cac59f4193442561e56da974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 14:00:47 -0700 Subject: [PATCH 05/16] No more whitelist_externals --- tox.ini | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/tox.ini b/tox.ini index 2a9a8d137..f7a06fc35 100644 --- a/tox.ini +++ b/tox.ini @@ -50,11 +50,6 @@ deps = coverage: coverage -whitelist_externals = - coverage: cp - coverage: mkdir - - passenv = PATH LANG LC_ALL @@ -79,12 +74,9 @@ commands = # Run trial without coverage trial: trial --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - coverage: mkdir -p "{toxworkdir}/coverage" + coverage: python -c 'import os; d=os.path.dirname("{env:COVERAGE_FILE}"); (lambda: None if os.path.isdir(d) else lambda: os.makedirs(d))()' coverage: coverage run --rcfile="{toxinidir}/.coveragerc" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - # Copy aside coverage data for each test environment in case we want to look at it later - coverage: cp "{env:COVERAGE_FILE}" "{envlogdir}/coverage" - # Run coverage reports, ignore exit status coverage: - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" coverage: - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" @@ -195,18 +187,11 @@ skip_install = True deps = coverage -whitelist_externals = - cp - - commands = "{toxinidir}/.travis/environment" coverage combine --append - # Copy aside coverage data for each test environment in case we want to look at it later - cp "{env:COVERAGE_FILE}" "{envlogdir}/coverage" - # Run coverage reports, ignore exit status - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" From f02c021e43f1586ddc382203b15cbe355f55e6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:20:50 -0700 Subject: [PATCH 06/16] No LANG --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index f7a06fc35..c489f0962 100644 --- a/tox.ini +++ b/tox.ini @@ -52,7 +52,6 @@ deps = passenv = PATH - LANG LC_ALL CI CONTINUOUS_INTEGRATION TRAVIS TRAVIS_* _system_* CODECOV_OPTIONS From 862acc53d0684e5b06972424af16c23024976cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:25:44 -0700 Subject: [PATCH 07/16] Simpler mkdir replacement --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index c489f0962..ce5f8808d 100644 --- a/tox.ini +++ b/tox.ini @@ -73,8 +73,8 @@ commands = # Run trial without coverage trial: trial --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - coverage: python -c 'import os; d=os.path.dirname("{env:COVERAGE_FILE}"); (lambda: None if os.path.isdir(d) else lambda: os.makedirs(d))()' coverage: coverage run --rcfile="{toxinidir}/.coveragerc" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} + coverage: python -c 'import os; d="{toxworkdir}/coverage"; os.makedirs(d) if not os.path.exists(d) else None' # Run coverage reports, ignore exit status coverage: - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" From d44dc11158542d3740df31846fd54913b7d65a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:26:08 -0700 Subject: [PATCH 08/16] Rename .coveragerc to coverage.conf --- .coveragerc => coverage.conf | 0 tox.ini | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) rename .coveragerc => coverage.conf (100%) diff --git a/.coveragerc b/coverage.conf similarity index 100% rename from .coveragerc rename to coverage.conf diff --git a/tox.ini b/tox.ini index ce5f8808d..5c676f776 100644 --- a/tox.ini +++ b/tox.ini @@ -73,13 +73,13 @@ commands = # Run trial without coverage trial: trial --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - coverage: coverage run --rcfile="{toxinidir}/.coveragerc" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} coverage: python -c 'import os; d="{toxworkdir}/coverage"; os.makedirs(d) if not os.path.exists(d) else None' + coverage: coverage run --rcfile="{toxinidir}/coverage.conf" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} # Run coverage reports, ignore exit status - coverage: - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" - coverage: - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" - coverage: - coverage report --rcfile="{toxinidir}/.coveragerc" --skip-covered --omit "*/test/*" + coverage: - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" + coverage: - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" + coverage: - coverage report --rcfile="{toxinidir}/coverage.conf" --skip-covered --omit "*/test/*" @@ -192,11 +192,11 @@ commands = coverage combine --append # Run coverage reports, ignore exit status - - coverage html --rcfile="{toxinidir}/.coveragerc" -d "{env:COVERAGE_HTML}" - - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" + - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" + - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" # Don't ignore exit status here; this is our failure status if coverage is insufficient. - coverage report --rcfile="{toxinidir}/.coveragerc" --omit "*/test/*" + coverage report --rcfile="{toxinidir}/coverage.conf" --omit "*/test/*" @@ -220,7 +220,7 @@ commands = # Generate XML and publish to codecov.io # Ignore errors generating coverage XML, which may be due to < 100% coverage; we still want to publish - - coverage xml --rcfile="{toxinidir}/.coveragerc" -o "{env:COVERAGE_XML}" + - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" codecov --required --file="{env:COVERAGE_XML}" {env:CODECOV_OPTIONS:} From 657da86a2931ea767072734c59077b33955883ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:27:59 -0700 Subject: [PATCH 09/16] No coverage_combine in default envlist --- tox.ini | 2 -- 1 file changed, 2 deletions(-) diff --git a/tox.ini b/tox.ini index 5c676f776..d47d7a0a2 100644 --- a/tox.ini +++ b/tox.ini @@ -6,8 +6,6 @@ envlist = # Twisted 15.5 is the first version to support Python 3 (3.3+) coverage-py{27,py,34,35,36}-tw{155,166,current,trunk} - coverage_combine - docs, docs-linkcheck skip_missing_interpreters = True From 3e7d5568416774a4984410a094a007fb362db3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:30:31 -0700 Subject: [PATCH 10/16] Reorder for moshez --- .gitignore | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index dc06a9d11..e4dbb5c86 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ *.pyc -*~ -.DS_Store -/.tox/ +__pycache__ /docs/_build/ +.DS_Store /src/*.egg-info -__pycache__ +/.tox/ +*~ From 6bcccb12629f1008e492bfacb825dc4b014638a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 16:51:38 -0700 Subject: [PATCH 11/16] Require -html and/or -xml qualifier to run html and/or xml coverage reports --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index d47d7a0a2..2e18d76fe 100644 --- a/tox.ini +++ b/tox.ini @@ -75,8 +75,8 @@ commands = coverage: coverage run --rcfile="{toxinidir}/coverage.conf" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} # Run coverage reports, ignore exit status - coverage: - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" - coverage: - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" + coverage-html: - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" + coverage-xml: - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" coverage: - coverage report --rcfile="{toxinidir}/coverage.conf" --skip-covered --omit "*/test/*" From bc0370073adc6fcb497d6fca020805e8c88132a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Wed, 28 Jun 2017 17:01:31 -0700 Subject: [PATCH 12/16] Move fail_under from config to --fail-under in command line when it matters. --- coverage.conf | 1 - tox.ini | 18 +++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/coverage.conf b/coverage.conf index f2654f640..acdb32091 100644 --- a/coverage.conf +++ b/coverage.conf @@ -3,6 +3,5 @@ branch = True source = klein [report] -fail_under = 100 precision = 2 show_missing = True diff --git a/tox.ini b/tox.ini index 2e18d76fe..b73d046ca 100644 --- a/tox.ini +++ b/tox.ini @@ -74,10 +74,9 @@ commands = coverage: python -c 'import os; d="{toxworkdir}/coverage"; os.makedirs(d) if not os.path.exists(d) else None' coverage: coverage run --rcfile="{toxinidir}/coverage.conf" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - # Run coverage reports, ignore exit status - coverage-html: - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" - coverage-xml: - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" - coverage: - coverage report --rcfile="{toxinidir}/coverage.conf" --skip-covered --omit "*/test/*" + coverage-html: coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" + coverage-xml: coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" + coverage: coverage report --rcfile="{toxinidir}/coverage.conf" --skip-covered --omit "*/test/*" @@ -189,12 +188,10 @@ commands = coverage combine --append - # Run coverage reports, ignore exit status - - coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" - - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" + coverage html --rcfile="{toxinidir}/coverage.conf" -d "{env:COVERAGE_HTML}" + coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" - # Don't ignore exit status here; this is our failure status if coverage is insufficient. - coverage report --rcfile="{toxinidir}/coverage.conf" --omit "*/test/*" + coverage report --rcfile="{toxinidir}/coverage.conf" --fail-under=100 --omit "*/test/*" @@ -217,8 +214,7 @@ commands = coverage combine --append # Generate XML and publish to codecov.io - # Ignore errors generating coverage XML, which may be due to < 100% coverage; we still want to publish - - coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" + coverage xml --rcfile="{toxinidir}/coverage.conf" -o "{env:COVERAGE_XML}" codecov --required --file="{env:COVERAGE_XML}" {env:CODECOV_OPTIONS:} From a7a165942eb69207b8ab55de1f5f7ac7f04fbbf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Mon, 3 Jul 2017 10:54:38 -0700 Subject: [PATCH 13/16] cosmetic --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4f5c2ad01..648b2bf2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -70,10 +70,10 @@ matrix: allow_failures: # Tests against Twisted trunk are allow to fail, as they are not supported. - - env: TOXENV=coverage-pypy-twtrunk - env: TOXENV=coverage-py27-twtrunk - env: TOXENV=coverage-py34-twtrunk - env: TOXENV=coverage-py35-twtrunk + - env: TOXENV=coverage-pypy-twtrunk # This is not yet required. - env: TOXENV=twistedchecker-diff From 7ce96c95201922ecfa41e31884aa23804d9d62c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Tue, 4 Jul 2017 07:36:03 -0700 Subject: [PATCH 14/16] Comment --- tox.ini | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 8f7250d12..ea3a92c78 100644 --- a/tox.ini +++ b/tox.ini @@ -72,8 +72,10 @@ commands = # Run trial without coverage trial: trial --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} - # Run trial with coverage + # Create a directory for coverage reports coverage: python -c 'import os; d="{toxworkdir}/coverage"; os.makedirs(d) if not os.path.exists(d) else None' + + # Run trial with coverage coverage: coverage run --rcfile="{toxinidir}/coverage.conf" "{envdir}/bin/trial" --random=0 --logfile="{envlogdir}/trial.log" --temp-directory="{envlogdir}/trial.d" {posargs:klein} # Coverage reports From c583d61e02751a8a215c5c6f67912f24edcd9a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Tue, 4 Jul 2017 08:00:50 -0700 Subject: [PATCH 15/16] Pull up from ignore-paths --- .gitignore | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e4dbb5c86..4c93fe39d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ *.pyc -__pycache__ -/docs/_build/ -.DS_Store +/_trial_temp/ +/build/ /src/*.egg-info /.tox/ +/docs/_build/ +.DS_Store +/dist/ *~ From 354394375022d103c9de2e36051bcb94ca0e6ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilfredo=20Sa=CC=81nchez?= Date: Mon, 10 Jul 2017 15:29:49 -0700 Subject: [PATCH 16/16] cosmetic --- tox.ini | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/tox.ini b/tox.ini index c9876c134..9ec4a863f 100644 --- a/tox.ini +++ b/tox.ini @@ -46,10 +46,8 @@ deps = coverage: coverage - passenv = - CODECOV_OPTIONS - + codecov: CODECOV_OPTIONS setenv = PIP_DISABLE_PIP_VERSION_CHECK=1 @@ -61,7 +59,6 @@ setenv = {coverage,coverage_combine}: COVERAGE_HTML={envlogdir}/coverage_report_html {coverage,coverage_combine,codecov}: COVERAGE_XML={envlogdir}/coverage_report.xml - commands = "{toxinidir}/.travis/environment" @@ -80,13 +77,14 @@ commands = coverage: coverage report --rcfile="{toxinidir}/coverage.conf" --skip-covered --omit "*/test/*" - ## # Flake8 linting ## [testenv:flake8] +basepython = python3.5 + skip_install = True deps = @@ -98,8 +96,6 @@ deps = pep8-naming mccabe -basepython = python3.5 - commands = "{toxinidir}/.travis/environment" @@ -134,43 +130,40 @@ application-import-names = klein max-complexity = 21 - ## # Run twistedchecker ## [testenv:twistedchecker] -deps = twistedchecker - basepython = python2.7 +deps = twistedchecker + commands = "{toxinidir}/.travis/environment" twistedchecker {posargs:klein} - ## # Run twistedchecker on changes relative to master ## [testenv:twistedchecker-diff] +basepython = python2.7 + deps = {[testenv:twistedchecker]deps} diff_cover -basepython = python2.7 - commands = "{toxinidir}/.travis/environment" "{toxinidir}/.travis/twistedchecker-diff" {posargs:klein} - ## # Combine coverage reports ## @@ -183,7 +176,6 @@ skip_install = True deps = coverage - commands = "{toxinidir}/.travis/environment" @@ -195,7 +187,6 @@ commands = coverage report --rcfile="{toxinidir}/coverage.conf" --fail-under=100 --omit "*/test/*" - ## # Publish to Codecov ## @@ -208,7 +199,6 @@ skip_install = True deps = codecov - commands = "{toxinidir}/.travis/environment" @@ -219,19 +209,18 @@ commands = codecov --required --file="{env:COVERAGE_XML}" {env:CODECOV_OPTIONS:} - ## # Build the documentation ## [testenv:docs] +basepython = python2.7 + deps = sphinx sphinx_rtd_theme -basepython = python2.7 - commands = "{toxinidir}/.travis/environment" @@ -244,10 +233,10 @@ commands = [testenv:docs-linkcheck] -deps = {[testenv:docs]deps} - basepython = python2.7 +deps = {[testenv:docs]deps} + commands = "{toxinidir}/.travis/environment"