summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgignore43
-rw-r--r--.hgtags68
-rw-r--r--.travis.yml1
-rw-r--r--CHANGES.rst18
-rw-r--r--CONTRIBUTORS.txt2
-rw-r--r--MANIFEST.in4
-rw-r--r--Makefile2
-rw-r--r--README.rst17
-rw-r--r--__main__.py13
-rw-r--r--appveyor.yml6
-rw-r--r--ci/download_appveyor.py2
-rw-r--r--coverage/__init__.py2
-rw-r--r--coverage/__main__.py2
-rw-r--r--coverage/annotate.py2
-rw-r--r--coverage/backunittest.py2
-rw-r--r--coverage/backward.py2
-rw-r--r--coverage/bytecode.py2
-rw-r--r--coverage/cmdline.py2
-rw-r--r--coverage/collector.py13
-rw-r--r--coverage/config.py6
-rw-r--r--coverage/control.py2
-rw-r--r--coverage/ctracer/datastack.c2
-rw-r--r--coverage/ctracer/datastack.h2
-rw-r--r--coverage/ctracer/filedisp.c2
-rw-r--r--coverage/ctracer/filedisp.h2
-rw-r--r--coverage/ctracer/module.c2
-rw-r--r--coverage/ctracer/stats.h2
-rw-r--r--coverage/ctracer/tracer.c2
-rw-r--r--coverage/ctracer/tracer.h2
-rw-r--r--coverage/ctracer/util.h2
-rw-r--r--coverage/data.py2
-rw-r--r--coverage/debug.py2
-rw-r--r--coverage/disposition.py2
-rw-r--r--coverage/env.py2
-rw-r--r--coverage/execfile.py11
-rw-r--r--coverage/files.py2
-rw-r--r--coverage/fullcoverage/encodings.py2
-rw-r--r--coverage/html.py2
-rw-r--r--coverage/htmlfiles/coverage_html.js13
-rw-r--r--coverage/htmlfiles/index.html2
-rw-r--r--coverage/htmlfiles/pyfile.html2
-rw-r--r--coverage/htmlfiles/style.css3
-rw-r--r--coverage/inorout.py2
-rw-r--r--coverage/misc.py2
-rw-r--r--coverage/multiproc.py8
-rw-r--r--coverage/parser.py2
-rw-r--r--coverage/phystokens.py2
-rw-r--r--coverage/pickle2json.py2
-rw-r--r--coverage/plugin.py2
-rw-r--r--coverage/plugin_support.py2
-rw-r--r--coverage/python.py2
-rw-r--r--coverage/pytracer.py2
-rw-r--r--coverage/report.py2
-rw-r--r--coverage/results.py2
-rw-r--r--coverage/summary.py2
-rw-r--r--coverage/templite.py2
-rw-r--r--coverage/version.py4
-rw-r--r--coverage/xmlreport.py2
-rw-r--r--doc/api.rst2
-rw-r--r--doc/api_coverage.rst2
-rw-r--r--doc/api_coveragedata.rst2
-rw-r--r--doc/api_plugin.rst2
-rw-r--r--doc/branch.rst2
-rw-r--r--doc/changes.rst2
-rw-r--r--doc/cmd.rst2
-rw-r--r--doc/conf.py6
-rw-r--r--doc/config.rst2
-rw-r--r--doc/contributing.rst30
-rw-r--r--doc/excluding.rst2
-rw-r--r--doc/faq.rst13
-rw-r--r--doc/howitworks.rst2
-rw-r--r--doc/index.rst22
-rw-r--r--doc/install.rst2
-rw-r--r--doc/plugins.rst2
-rw-r--r--doc/python-coverage.1.txt6
-rw-r--r--doc/requirements.pip2
-rw-r--r--doc/source.rst2
-rw-r--r--doc/subprocess.rst2
-rw-r--r--doc/trouble.rst4
-rw-r--r--howto.txt4
-rw-r--r--igor.py2
-rw-r--r--lab/README.txt4
-rw-r--r--lab/branches.py28
-rw-r--r--lab/hack_pyc.py2
-rw-r--r--lab/parser.py2
-rw-r--r--lab/platform_info.py2
-rw-r--r--lab/run_trace.py6
-rw-r--r--lab/show_platform.py2
-rw-r--r--lab/show_pyc.py2
-rw-r--r--metacov.ini2
-rw-r--r--perf/perf_measure.py2
-rw-r--r--perf/solve_poly.py2
-rw-r--r--pylintrc2
-rw-r--r--requirements/ci.pip2
-rw-r--r--requirements/dev.pip6
-rw-r--r--requirements/pytest.pip4
-rw-r--r--requirements/wheel.pip4
-rw-r--r--setup.py4
-rw-r--r--tests/__init__.py2
-rw-r--r--tests/backtest.py2
-rw-r--r--tests/conftest.py2
-rw-r--r--tests/coveragetest.py2
-rw-r--r--tests/covmodzip1.py2
-rw-r--r--tests/eggsrc/egg1/egg1.py2
-rw-r--r--tests/eggsrc/setup.py2
-rw-r--r--tests/farm/annotate/annotate_dir.py2
-rw-r--r--tests/farm/annotate/gold/white.py,cover2
-rw-r--r--tests/farm/annotate/gold_anno_dir/a_a.py,cover2
-rw-r--r--tests/farm/annotate/gold_anno_dir/b_b.py,cover2
-rw-r--r--tests/farm/annotate/gold_anno_dir/multi.py,cover2
-rw-r--r--tests/farm/annotate/gold_encodings/utf8.py,cover2
-rw-r--r--tests/farm/annotate/gold_multi/a/a.py,cover2
-rw-r--r--tests/farm/annotate/gold_multi/b/b.py,cover2
-rw-r--r--tests/farm/annotate/gold_multi/multi.py,cover2
-rw-r--r--tests/farm/annotate/run.py2
-rw-r--r--tests/farm/annotate/run_encodings.py2
-rw-r--r--tests/farm/annotate/run_multi.py2
-rw-r--r--tests/farm/annotate/src/a/a.py2
-rw-r--r--tests/farm/annotate/src/b/b.py2
-rw-r--r--tests/farm/annotate/src/multi.py2
-rw-r--r--tests/farm/annotate/src/utf8.py2
-rw-r--r--tests/farm/annotate/src/white.py2
-rw-r--r--tests/farm/html/gold_a/a_py.html2
-rw-r--r--tests/farm/html/gold_b_branch/b_py.html2
-rw-r--r--tests/farm/html/gold_isolatin1/isolatin1_py.html2
-rw-r--r--tests/farm/html/gold_omit_1/m1_py.html2
-rw-r--r--tests/farm/html/gold_omit_1/m2_py.html2
-rw-r--r--tests/farm/html/gold_omit_1/m3_py.html2
-rw-r--r--tests/farm/html/gold_omit_1/main_py.html2
-rw-r--r--tests/farm/html/gold_omit_2/m2_py.html2
-rw-r--r--tests/farm/html/gold_omit_2/m3_py.html2
-rw-r--r--tests/farm/html/gold_omit_2/main_py.html2
-rw-r--r--tests/farm/html/gold_omit_3/m3_py.html2
-rw-r--r--tests/farm/html/gold_omit_3/main_py.html2
-rw-r--r--tests/farm/html/gold_omit_4/m1_py.html2
-rw-r--r--tests/farm/html/gold_omit_4/m3_py.html2
-rw-r--r--tests/farm/html/gold_omit_4/main_py.html2
-rw-r--r--tests/farm/html/gold_omit_5/m1_py.html2
-rw-r--r--tests/farm/html/gold_omit_5/main_py.html2
-rw-r--r--tests/farm/html/gold_other/blah_blah_other_py.html2
-rw-r--r--tests/farm/html/gold_other/here_py.html2
-rw-r--r--tests/farm/html/gold_partial/partial_py.html2
-rw-r--r--tests/farm/html/gold_styled/a_py.html2
-rw-r--r--tests/farm/html/gold_styled/style.css2
-rw-r--r--tests/farm/html/gold_unicode/unicode_py.html2
-rw-r--r--tests/farm/html/othersrc/other.py2
-rw-r--r--tests/farm/html/src/a.py2
-rw-r--r--tests/farm/html/src/b.py2
-rw-r--r--tests/farm/html/src/bom.py2
-rw-r--r--tests/farm/html/src/here.py2
-rw-r--r--tests/farm/html/src/isolatin1.py2
-rw-r--r--tests/farm/html/src/m1.py2
-rw-r--r--tests/farm/html/src/m2.py2
-rw-r--r--tests/farm/html/src/m3.py2
-rw-r--r--tests/farm/html/src/main.py2
-rw-r--r--tests/farm/html/src/omit4.ini2
-rw-r--r--tests/farm/html/src/omit5.ini2
-rw-r--r--tests/farm/html/src/partial.ini2
-rw-r--r--tests/farm/html/src/partial.py2
-rw-r--r--tests/farm/html/src/run_a_xml_2.ini2
-rw-r--r--tests/farm/html/src/tabbed.py2
-rw-r--r--tests/farm/html/src/unicode.py2
-rw-r--r--tests/farm/html/src/y.py2
-rw-r--r--tests/farm/run/run_chdir.py2
-rw-r--r--tests/farm/run/run_timid.py2
-rw-r--r--tests/farm/run/run_xxx.py2
-rw-r--r--tests/farm/run/src/chdir.py2
-rw-r--r--tests/farm/run/src/showtrace.py2
-rw-r--r--tests/farm/run/src/xxx2
-rw-r--r--tests/goldtest.py2
-rw-r--r--tests/helpers.py2
-rw-r--r--tests/js/tests.js2
-rw-r--r--tests/modules/covmod1.py2
-rw-r--r--tests/modules/namespace_420/sub1/__init__.py2
-rw-r--r--tests/modules/pkg1/p1a.py2
-rw-r--r--tests/modules/pkg1/p1b.py2
-rw-r--r--tests/modules/pkg1/p1c.py2
-rw-r--r--tests/modules/pkg1/runmod2.py2
-rw-r--r--tests/modules/pkg1/sub/ps1a.py2
-rw-r--r--tests/modules/pkg1/sub/runmod3.py2
-rw-r--r--tests/modules/pkg2/p2a.py2
-rw-r--r--tests/modules/pkg2/p2b.py2
-rw-r--r--tests/modules/plugins/another.py2
-rw-r--r--tests/modules/process_test/try_execfile.py2
-rw-r--r--tests/modules/runmod1.py2
-rw-r--r--tests/modules/usepkgs.py2
-rw-r--r--tests/moremodules/namespace_420/sub2/__init__.py2
-rw-r--r--tests/moremodules/othermods/othera.py2
-rw-r--r--tests/moremodules/othermods/otherb.py2
-rw-r--r--tests/moremodules/othermods/sub/osa.py2
-rw-r--r--tests/moremodules/othermods/sub/osb.py2
-rw-r--r--tests/osinfo.py2
-rw-r--r--tests/plugin1.py2
-rw-r--r--tests/plugin2.py2
-rw-r--r--tests/plugin_config.py2
-rw-r--r--tests/stress_phystoken.tok2
-rw-r--r--tests/stress_phystoken_dos.tok2
-rw-r--r--tests/test_api.py2
-rw-r--r--tests/test_arcs.py2
-rw-r--r--tests/test_backward.py2
-rw-r--r--tests/test_cmdline.py2
-rw-r--r--tests/test_collector.py2
-rw-r--r--tests/test_concurrency.py2
-rw-r--r--tests/test_config.py2
-rw-r--r--tests/test_coverage.py15
-rw-r--r--tests/test_data.py2
-rw-r--r--tests/test_debug.py2
-rw-r--r--tests/test_execfile.py2
-rw-r--r--tests/test_farm.py6
-rw-r--r--tests/test_filereporter.py2
-rw-r--r--tests/test_files.py2
-rw-r--r--tests/test_html.py8
-rw-r--r--tests/test_misc.py2
-rw-r--r--tests/test_oddball.py2
-rw-r--r--tests/test_parser.py18
-rw-r--r--tests/test_phystokens.py2
-rw-r--r--tests/test_pickle2json.py2
-rw-r--r--tests/test_plugins.py2
-rw-r--r--tests/test_process.py7
-rw-r--r--tests/test_python.py2
-rw-r--r--tests/test_results.py2
-rw-r--r--tests/test_setup.py4
-rw-r--r--tests/test_summary.py2
-rw-r--r--tests/test_templite.py2
-rw-r--r--tests/test_testing.py2
-rw-r--r--tests/test_version.py2
-rw-r--r--tests/test_xml.py2
-rw-r--r--tox.ini9
-rw-r--r--tox_wheels.ini2
229 files changed, 377 insertions, 445 deletions
diff --git a/.hgignore b/.hgignore
deleted file mode 100644
index 53576e14..00000000
--- a/.hgignore
+++ /dev/null
@@ -1,43 +0,0 @@
-syntax: glob
-
-# Files that can appear anywhere in the tree.
-*.pyc
-*.pyo
-*$py.class
-*.pyd
-*.so
-*.bak
-.coverage
-.coverage.*
-coverage.xml
-.metacov
-.metacov.*
-*.swp
-
-# Stuff generated by editors.
-.idea/
-.vimtags
-
-# Stuff in the root.
-build
-*.egg-info
-dist
-htmlcov
-MANIFEST
-setuptools-*.egg
-.tox*
-.noseids
-.cache
-.pytest_cache
-.hypothesis
-
-# Stuff in the test directory.
-zipmods.zip
-
-# Stuff in the doc directory.
-_build
-_spell
-sample_html_beta
-
-# Stuff in the ci directory.
-*.token
diff --git a/.hgtags b/.hgtags
deleted file mode 100644
index 411bf391..00000000
--- a/.hgtags
+++ /dev/null
@@ -1,68 +0,0 @@
-4105a4de000ef94bb1f80cecae7c93aaf282bdbc coverage-3.0b1
-79dd373074def79b3822ee9254307295bf991d16 coverage-3.0b2
-ad991769ad4f685089bacc594e689bab50a6db90 coverage-3.0b3
-9041c4e99c3f8181d35e47df6fd83ceedb1f47fc coverage-3.0
-483a54854358881c360c6a717709b45a5225bd69 coverage-3.0.1
-67f7698c6c0413cc335ed5af7dd981bcf0a126a4 coverage-3.1b1
-67f7698c6c0413cc335ed5af7dd981bcf0a126a4 coverage-3.1b1
-27b6be608b2be50b92b91610846117ab7c47831c coverage-3.1b1
-4d89e089a8f3964522b19d50b4e90be0f2e49b53 coverage-3.1
-524f15a1a176be1b9afb737ab1be99c972f8c928 coverage-3.2b1
-524f15a1a176be1b9afb737ab1be99c972f8c928 coverage-3.2b1
-9231251c603ef0d491b01799b3d1da7af54dd083 coverage-3.2b1
-9231251c603ef0d491b01799b3d1da7af54dd083 coverage-3.2b1
-da052544181e335a18b4141b8b7a47e8246aa9e8 coverage-3.2b1
-11f0fbec2bc9b22a5fd8687d8b94338a4a363e6c coverage-3.2b2
-d42ad49a0aaca90867644876948a7bdab0aa9970 coverage-3.2b3
-3e21d5dc7e9d9c64db56d84b245618ad5c1a4743 coverage-3.2b4
-e3a46ca12bda98e81329300994ca7573dc3af86e coverage-3.2
-e3a46ca12bda98e81329300994ca7573dc3af86e coverage-3.2
-2e1628da1ffce31ed5c58bcad657882de282c858 coverage-3.2
-f63624fedea89b2acb361e1d7d6c5375ebced2aa coverage-3.3
-91bf9589714b14ac4a2ab5995635736994b97348 coverage-3.3.1
-7983cc5256eafaa6c6c3cdb05266493b4c1f991a coverage-3.4b1
-fcc4407bece6ca1266c91734bfdc657b66e10290 coverage-3.4b2
-25f2c1579f1c9539b2c140b86f6c00cbfbf4c565 coverage-3.4
-b7db1026817a4ae98c58c561f6ef79e95d0e13f9 coverage-3.5b1
-7be6416f60b90b75d8c81e5369612b7f48dc26cd coverage-3.5
-9229ab7b00f9e6542b44e788916f4117bd27cfdb coverage-3.5.1b1
-465bedd8af1f79a61f6dda018f6aefe97a79ae4d coverage-3.5.1
-afc3c2ffdb323bf059f136c4c88199899ed93d36 coverage-3.5.2b1
-4eb95ddb88496eccf5f399ba69ca1769baf29dfd coverage-3.5.2
-5429bbb25e8f124f5401cce1effa3089dd792711 coverage-3.5.3
-3483c970350aedb2c8fbe33def962041628f0ba6 coverage-3.6b1
-44d084b18bf0b96f49964df344c1dcaee3802d2e coverage-3.6b2
-773375910ceaaebfce4b5badc584559bf139c862 coverage-3.6b3
-af20c6543c226fbc9deeba4a6d4114641374734a coverage-3.6
-092c0be6d011b6abf85b11476e3b548ed4d5b4c3 coverage-3.7
-41932e001f215955dff895a1fd2fe4133abb89dc coverage-3.7.1
-175fd36ea47ea668066965c80343e1de34f2a94a coverage-4.0a1
-3b97c7c3178f0b88f1ee98f4c58ad00ca3d8e3b4 coverage-4.0a2
-eec8e928880df1beafdf7d4bea87f784375b35d7 coverage-4.0a3
-989f42e9eb11b5864e5746cea675d95ff4cf645d coverage-4.0a4
-00a61f028fcb000ae2cbc77bfbe0ac4cfacfab65 coverage-4.0a5
-90debbdf56495e6c0422ceb5f53f8550d2ad86bf coverage-4.0a6
-825fb6db681e9cfb227f09adbee50b881a3380e2 coverage-4.0b1
-9ab0815227d29c03775f7f7ad6dba1b0d93db777 coverage-4.0b2
-82b0c5a85a7eb2156eebaa6b81b1f62fb4fe51b5 coverage-4.0b3
-3c3e507a247eb35251083b9528a99e50831c960f coverage-4.0
-8e727dc12de10fb8a302b04a8f2af3e00587889e coverage-4.0.1
-7428dab9307da4660878436fe71b696ca2048cf2 coverage-4.0.2
-5ab728b8fd55bd78352012a15a6541fa73dd9e2c coverage-4.0.3
-166fbccc94fb32e52a18508c5422ddae5d5184b9 coverage-4.1b1
-05377ccfe33a83068962a9010037db2d3ebdfa1a coverage-4.1b2
-4984b5b2273622a98d6e4b7de6461bbf6fae41e3 coverage-4.1b3
-1b57373355d1d0a2de258655c47412698d5f061a coverage-4.1
-c84cdae01ca45f85e396c65c20e0234e89ef1785 coverage-4.2b1
-d96ff67e4ef7d0c5e787ed5aafbc1b5a04f6e97a coverage-4.2
-e3e18c651fa059c909c25992d5b7a6db371de09b coverage-4.3
-6ecabe2f7a8d8676a05585bffe19f88b195698ae coverage-4.3.1
-dd2d866194d2eca05862230e6003c6e04fc2fdc0 coverage-4.3.2
-3714d7c42000deafd2fb2034fc8eee6a9ec4c280 coverage-4.3.3
-19d0627fca7a7e76c3c27df1d70ce7f536f1ff23 coverage-4.3.4
-30ab67f19960fafd836c89a08b5f7ee1510b8c03 coverage-4.4b1
-8ad6fa0931cd5eb9b7bb8e6dec6b066d2988fc8f coverage-4.4
-ed196840b79136f17ab493699ec83dcf7dbfe973 coverage-4.4.1
-b65ae46a6504b8d577e967bd3fdcfcaceec95528 coverage-4.4.2
-102b2250a123537e640cd014f5df281822e79cec coverage-4.5
-dda8b38e71d0bd2bde79d644f7265e1c02ce02f9 coverage-4.5.1
diff --git a/.travis.yml b/.travis.yml
index 8b318f50..df238e57 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,7 @@ python:
- '3.5'
- '3.6'
- 'pypy'
+ - 'pypy3.5'
env:
matrix:
diff --git a/CHANGES.rst b/CHANGES.rst
index 3b9dcbc2..883cd973 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
==============================
Change history for Coverage.py
@@ -14,8 +14,14 @@ Change history for Coverage.py
.. Version 7.8.1 --- 2021-07-27
.. ----------------------------
-Unreleased (might become 5.0)
------------------------------
+Unreleased
+----------
+
+
+.. _changes_50a1:
+
+Version 5.0a1 --- 2018-06-05
+----------------------------
- Coverage.py no longer supports Python 2.6 or 3.3.
@@ -26,6 +32,12 @@ Unreleased (might become 5.0)
been imported before coverage.py started measurement. See
:ref:`cmd_warnings` for more information.
+- Running coverage many times for small runs in a single process should be
+ faster, closing `issue 625`_. Thanks, David MacIver.
+
+- Large HTML report pages load faster. Thanks, Pankaj Pandey.
+
+.. _issue 625: https://bitbucket.org/ned/coveragepy/issues/625/lstat-dominates-in-the-case-of-small
.. _issue 650: https://bitbucket.org/ned/coveragepy/issues/650/allow-setting-configuration-file-location
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index d3112a14..549a83dc 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -52,6 +52,7 @@ George Paci
George Song
Greg Rogers
Guillaume Chazarain
+Hugo van Kemenade
Ilia Meerovich
Imri Goldberg
Ionel Cristian Mărieș
@@ -81,6 +82,7 @@ Nathan Land
Noel O'Boyle
Olivier Grisel
Ori Avtalion
+Pankaj Pandey
Pablo Carballo
Patrick Mezard
Peter Baughman
diff --git a/MANIFEST.in b/MANIFEST.in
index 462f24ff..536aa118 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# MANIFEST.in file for coverage.py
@@ -14,7 +14,6 @@ include TODO.txt
include __main__.py
include .travis.yml
include appveyor.yml
-include circle.yml
include howto.txt
include igor.py
include metacov.ini
@@ -22,6 +21,7 @@ include pylintrc
include setup.py
include tox.ini
include tox_wheels.ini
+include .editorconfig
recursive-include ci *.*
exclude ci/appveyor.token
diff --git a/Makefile b/Makefile
index d9bc1775..5fe79f90 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Makefile for utility work on coverage.py.
diff --git a/README.rst b/README.rst
index 9336b971..9898276c 100644
--- a/README.rst
+++ b/README.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
===========
Coverage.py
@@ -20,19 +20,20 @@ library to determine which lines are executable, and which have been executed.
Coverage.py runs on many versions of Python:
* CPython 2.7 and 3.4 through 3.7.
-* PyPy2 5.10 and PyPy3 5.10.
+* PyPy2 6.0 and PyPy3 6.0.
* Jython 2.7.1, though not for reporting.
* IronPython 2.7.7, though not for reporting.
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
-`Bitbucket`_, with a mirrored repository on `GitHub`_.
+`GitHub`_.
.. _Read the Docs: https://coverage.readthedocs.io/
-.. _Bitbucket: https://bitbucket.org/ned/coveragepy
.. _GitHub: https://github.com/nedbat/coveragepy
-**New in 4.5:** Configurator plug-ins.
+**New in 5.0:** Dropped support for Python 2.6 and 3.3.
+
+New in 4.5: Configurator plug-ins.
New in 4.4: Suppressable warnings, continuous coverage measurement.
@@ -69,11 +70,11 @@ License
Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
.. _Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
-.. _NOTICE.txt: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. _NOTICE.txt: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-.. |ci-status| image:: https://travis-ci.org/nedbat/coveragepy.svg?branch=master
- :target: https://travis-ci.org/nedbat/coveragepy
+.. |ci-status| image:: https://travis-ci.com/nedbat/coveragepy.svg?branch=master
+ :target: https://travis-ci.com/nedbat/coveragepy
:alt: Build status
.. |win-ci-status| image:: https://ci.appveyor.com/api/projects/status/kmeqpdje7h9r6vsf/branch/master?svg=true
:target: https://ci.appveyor.com/project/nedbat/coveragepy
diff --git a/__main__.py b/__main__.py
index c998e1da..28ad7d2d 100644
--- a/__main__.py
+++ b/__main__.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Be able to execute coverage.py by pointing Python at a working tree."""
@@ -8,12 +8,5 @@ import os
PKG = 'coverage'
-try:
- run_globals = runpy.run_module(PKG, run_name='__main__', alter_sys=True)
- executed = os.path.splitext(os.path.basename(run_globals['__file__']))[0]
- if executed != '__main__': # For Python 2.5 compatibility
- raise ImportError(
- 'Incorrectly executed %s instead of __main__' % executed
- )
-except ImportError: # For Python 2.6 compatibility
- runpy.run_module('%s.__main__' % PKG, run_name='__main__', alter_sys=True)
+run_globals = runpy.run_module(PKG, run_name='__main__', alter_sys=True)
+executed = os.path.splitext(os.path.basename(run_globals['__file__']))[0]
diff --git a/appveyor.yml b/appveyor.yml
index 6ff592af..8b9e1b61 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -99,16 +99,16 @@ install:
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
- - "pip install --disable-pip-version-check --user --upgrade pip"
+ - "python -m pip install --disable-pip-version-check --upgrade pip"
# And upgrade virtualenv to get the latest pip inside .tox virtualenvs.
- - "pip install --disable-pip-version-check --user --upgrade virtualenv"
+ - "python -m pip install --disable-pip-version-check --upgrade virtualenv"
# Install requirements.
- "%CMD_IN_ENV% pip install -r requirements/ci.pip"
# Make a python3.4.bat file in the current directory so that tox will find it
# and python3.4 will mean what we want it to.
- - "python -c \"import os; open('python{0}.{1}.bat'.format(*os.environ['TOXENV'][2:]), 'w').write('@{0}\\\\python \\x25*\\n'.format(os.environ['PYTHON']))\""
+ - "python -c \"import os; open('python{}.{}.bat'.format(*os.environ['TOXENV'][2:]), 'w').write('@{}\\\\python \\x25*\\n'.format(os.environ['PYTHON']))\""
build_script:
# If not a metacov job, then build wheels and .exe installers.
diff --git a/ci/download_appveyor.py b/ci/download_appveyor.py
index daf6f06e..7cec413c 100644
--- a/ci/download_appveyor.py
+++ b/ci/download_appveyor.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Use the Appveyor API to download Windows artifacts."""
diff --git a/coverage/__init__.py b/coverage/__init__.py
index 63f488f2..0f17c0a1 100644
--- a/coverage/__init__.py
+++ b/coverage/__init__.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Code coverage measurement for Python.
diff --git a/coverage/__main__.py b/coverage/__main__.py
index 35ab87a5..79aa4e2b 100644
--- a/coverage/__main__.py
+++ b/coverage/__main__.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Coverage.py's main entry point."""
diff --git a/coverage/annotate.py b/coverage/annotate.py
index 4060450f..48e2b91c 100644
--- a/coverage/annotate.py
+++ b/coverage/annotate.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Source file annotation for coverage.py."""
diff --git a/coverage/backunittest.py b/coverage/backunittest.py
index 1b084835..21d7bcb2 100644
--- a/coverage/backunittest.py
+++ b/coverage/backunittest.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Implementations of unittest features from the future."""
diff --git a/coverage/backward.py b/coverage/backward.py
index 5aff6406..5f59b23f 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Add things to old Pythons so I can pretend they are newer."""
diff --git a/coverage/bytecode.py b/coverage/bytecode.py
index d823c67c..943f29e1 100644
--- a/coverage/bytecode.py
+++ b/coverage/bytecode.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Bytecode manipulation for coverage.py"""
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index ea86b445..2af30141 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Command-line support for coverage.py."""
diff --git a/coverage/collector.py b/coverage/collector.py
index 0c3ca9c2..fa3eaaa4 100644
--- a/coverage/collector.py
+++ b/coverage/collector.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Raw data collector for coverage.py."""
@@ -103,6 +103,7 @@ class Collector(object):
self.origin = short_stack()
self.concur_id_func = None
+ self.abs_file_cache = {}
# We can handle a few concurrency options here, but only one at a time.
these_concurrencies = self.SUPPORTED_CONCURRENCIES.intersection(concurrency)
@@ -369,6 +370,14 @@ class Collector(object):
for tracer in self.tracers:
tracer.data = data
+ def cached_abs_file(self, filename):
+ """A locally cached version of `abs_file`."""
+ key = (type(filename), filename)
+ try:
+ return self.abs_file_cache[key]
+ except KeyError:
+ return self.abs_file_cache.setdefault(key, abs_file(filename))
+
def save_data(self, covdata):
"""Save the collected data to a `CoverageData`.
@@ -394,7 +403,7 @@ class Collector(object):
else:
raise runtime_err # pylint: disable=raising-bad-type
- return dict((abs_file(k), v) for k, v in items)
+ return dict((self.cached_abs_file(k), v) for k, v in items)
if self.branch:
covdata.add_arcs(abs_file_dict(self.data))
diff --git a/coverage/config.py b/coverage/config.py
index 285cb219..a0d7d06b 100644
--- a/coverage/config.py
+++ b/coverage/config.py
@@ -1,13 +1,13 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Config file for coverage.py"""
import collections
import os
import re
-import sys
+from coverage import env
from coverage.backward import configparser, iitems, string_class
from coverage.misc import contract, CoverageException, isolate_module
@@ -33,7 +33,7 @@ class HandyConfigParser(configparser.RawConfigParser):
def read(self, filenames):
"""Read a file name as UTF-8 configuration data."""
kwargs = {}
- if sys.version_info >= (3, 2):
+ if env.PYVERSION >= (3, 2):
kwargs['encoding'] = "utf-8"
return configparser.RawConfigParser.read(self, filenames, **kwargs)
diff --git a/coverage/control.py b/coverage/control.py
index 80012f57..aa93671c 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Core control stuff for coverage.py."""
diff --git a/coverage/ctracer/datastack.c b/coverage/ctracer/datastack.c
index 515ba924..a9cfcc2c 100644
--- a/coverage/ctracer/datastack.c
+++ b/coverage/ctracer/datastack.c
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#include "util.h"
#include "datastack.h"
diff --git a/coverage/ctracer/datastack.h b/coverage/ctracer/datastack.h
index b2dbeb95..3b3078ba 100644
--- a/coverage/ctracer/datastack.h
+++ b/coverage/ctracer/datastack.h
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#ifndef _COVERAGE_DATASTACK_H
#define _COVERAGE_DATASTACK_H
diff --git a/coverage/ctracer/filedisp.c b/coverage/ctracer/filedisp.c
index 479a2c9f..47782ae0 100644
--- a/coverage/ctracer/filedisp.c
+++ b/coverage/ctracer/filedisp.c
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#include "util.h"
#include "filedisp.h"
diff --git a/coverage/ctracer/filedisp.h b/coverage/ctracer/filedisp.h
index ada68eaf..860f9a50 100644
--- a/coverage/ctracer/filedisp.h
+++ b/coverage/ctracer/filedisp.h
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#ifndef _COVERAGE_FILEDISP_H
#define _COVERAGE_FILEDISP_H
diff --git a/coverage/ctracer/module.c b/coverage/ctracer/module.c
index 76231859..f308902b 100644
--- a/coverage/ctracer/module.c
+++ b/coverage/ctracer/module.c
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#include "util.h"
#include "tracer.h"
diff --git a/coverage/ctracer/stats.h b/coverage/ctracer/stats.h
index c5ffdf5f..05173369 100644
--- a/coverage/ctracer/stats.h
+++ b/coverage/ctracer/stats.h
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#ifndef _COVERAGE_STATS_H
#define _COVERAGE_STATS_H
diff --git a/coverage/ctracer/tracer.c b/coverage/ctracer/tracer.c
index 6dcdc576..01f8b19b 100644
--- a/coverage/ctracer/tracer.c
+++ b/coverage/ctracer/tracer.c
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
/* C-based Tracer for coverage.py. */
diff --git a/coverage/ctracer/tracer.h b/coverage/ctracer/tracer.h
index d5d630fb..61c01b41 100644
--- a/coverage/ctracer/tracer.h
+++ b/coverage/ctracer/tracer.h
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#ifndef _COVERAGE_TRACER_H
#define _COVERAGE_TRACER_H
diff --git a/coverage/ctracer/util.h b/coverage/ctracer/util.h
index f0c302cf..96d2e51c 100644
--- a/coverage/ctracer/util.h
+++ b/coverage/ctracer/util.h
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
#ifndef _COVERAGE_UTIL_H
#define _COVERAGE_UTIL_H
diff --git a/coverage/data.py b/coverage/data.py
index 6f76a727..9f2d1308 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Coverage data for coverage.py."""
diff --git a/coverage/debug.py b/coverage/debug.py
index 6e6e8013..d63a9070 100644
--- a/coverage/debug.py
+++ b/coverage/debug.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Control of and utilities for debugging."""
diff --git a/coverage/disposition.py b/coverage/disposition.py
index e9b8ba65..9b9a997d 100644
--- a/coverage/disposition.py
+++ b/coverage/disposition.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Simple value objects for tracking what to do with files."""
diff --git a/coverage/env.py b/coverage/env.py
index 4699a1e5..e35d026b 100644
--- a/coverage/env.py
+++ b/coverage/env.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Determine facts about the environment."""
diff --git a/coverage/execfile.py b/coverage/execfile.py
index a72cb71d..b2b78444 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Execute files of Python code."""
@@ -9,6 +9,7 @@ import struct
import sys
import types
+from coverage import env
from coverage.backward import BUILTINS
from coverage.backward import PYC_MAGIC_NUMBER, imp, importlib_util_find_spec
from coverage.misc import CoverageException, ExceptionDuringRun, NoCode, NoSource, isolate_module
@@ -115,7 +116,7 @@ def run_python_module(modulename, args):
# used to be an empty string (meaning the current directory). It changed
# to be the actual path to the current directory, so that os.chdir wouldn't
# affect the outcome.
- if sys.version_info >= (3, 7, 0, 'beta', 3):
+ if env.PYVERSION >= (3, 7, 0, 'beta', 3):
path0 = os.getcwd()
else:
path0 = ""
@@ -136,7 +137,7 @@ def run_python_file(filename, args, package=None, modulename=None, path0=None):
function will decide on a value.
"""
- if modulename is None and sys.version_info >= (3, 3):
+ if modulename is None and env.PYVERSION >= (3, 3):
modulename = '__main__'
# Create a module to serve as __main__
@@ -263,7 +264,7 @@ def make_code_from_pyc(filename):
raise NoCode("Bad magic number in .pyc file")
date_based = True
- if sys.version_info >= (3, 7, 0, 'alpha', 4):
+ if env.PYVERSION >= (3, 7, 0, 'alpha', 4):
flags = struct.unpack('<L', fpyc.read(4))[0]
hash_based = flags & 0x01
if hash_based:
@@ -272,7 +273,7 @@ def make_code_from_pyc(filename):
if date_based:
# Skip the junk in the header that we don't need.
fpyc.read(4) # Skip the moddate.
- if sys.version_info >= (3, 3):
+ if env.PYVERSION >= (3, 3):
# 3.3 added another long to the header (size), skip it.
fpyc.read(4)
diff --git a/coverage/files.py b/coverage/files.py
index 759ec2c9..70fde9db 100644
--- a/coverage/files.py
+++ b/coverage/files.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""File wrangling."""
diff --git a/coverage/fullcoverage/encodings.py b/coverage/fullcoverage/encodings.py
index 699f3863..aeb416e4 100644
--- a/coverage/fullcoverage/encodings.py
+++ b/coverage/fullcoverage/encodings.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Imposter encodings module that installs a coverage-style tracer.
diff --git a/coverage/html.py b/coverage/html.py
index b0c61649..1bef93a1 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""HTML reporting for coverage.py."""
diff --git a/coverage/htmlfiles/coverage_html.js b/coverage/htmlfiles/coverage_html.js
index f6f5de20..7fc2963c 100644
--- a/coverage/htmlfiles/coverage_html.js
+++ b/coverage/htmlfiles/coverage_html.js
@@ -1,5 +1,5 @@
// Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-// For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+// For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
// Coverage.py HTML report browser code.
/*jslint browser: true, sloppy: true, vars: true, plusplus: true, maxerr: 50, indent: 4 */
@@ -555,11 +555,16 @@ coverage.resize_scroll_markers = function () {
var previous_line = -99,
last_mark,
- last_top;
+ last_top,
+ offsets = {};
+ // Calculate line offsets outside loop to prevent relayouts
+ c.missed_lines.each(function() {
+ offsets[this.id] = $(this).offset().top;
+ });
c.missed_lines.each(function () {
- var line_top = Math.round($(this).offset().top * marker_scale),
- id_name = $(this).attr('id'),
+ var id_name = $(this).attr('id'),
+ line_top = Math.round(offsets[id_name] * marker_scale),
line_number = parseInt(id_name.substring(1, id_name.length));
if (line_number === previous_line + 1) {
diff --git a/coverage/htmlfiles/index.html b/coverage/htmlfiles/index.html
index 1e3999f9..4129bc31 100644
--- a/coverage/htmlfiles/index.html
+++ b/coverage/htmlfiles/index.html
@@ -1,5 +1,5 @@
{# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 #}
-{# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt #}
+{# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt #}
<!DOCTYPE html>
<html>
diff --git a/coverage/htmlfiles/pyfile.html b/coverage/htmlfiles/pyfile.html
index 8542a467..245ecf41 100644
--- a/coverage/htmlfiles/pyfile.html
+++ b/coverage/htmlfiles/pyfile.html
@@ -1,5 +1,5 @@
{# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 #}
-{# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt #}
+{# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt #}
<!DOCTYPE html>
<html>
diff --git a/coverage/htmlfiles/style.css b/coverage/htmlfiles/style.css
index 86b82091..14592865 100644
--- a/coverage/htmlfiles/style.css
+++ b/coverage/htmlfiles/style.css
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
/* CSS styles for coverage.py. */
@@ -365,6 +365,7 @@ td.text {
height: 100%;
background: white;
border-left: 1px solid #eee;
+ will-change: transform; /* for faster scrolling of fixed element in Chrome */
}
#scroll_marker .marker {
diff --git a/coverage/inorout.py b/coverage/inorout.py
index c0f27d78..15e496af 100644
--- a/coverage/inorout.py
+++ b/coverage/inorout.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Determining whether files are being measured/reported or not."""
diff --git a/coverage/misc.py b/coverage/misc.py
index 28aa3b06..fff2a187 100644
--- a/coverage/misc.py
+++ b/coverage/misc.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Miscellaneous stuff for coverage.py."""
diff --git a/coverage/multiproc.py b/coverage/multiproc.py
index 93b31552..62f6beb7 100644
--- a/coverage/multiproc.py
+++ b/coverage/multiproc.py
@@ -1,13 +1,13 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Monkey-patching to add multiprocessing support for coverage.py"""
import multiprocessing
import multiprocessing.process
import os
-import sys
+from coverage import env
from coverage.misc import contract
# An attribute that will be set on the module to indicate that it has been
@@ -15,7 +15,7 @@ from coverage.misc import contract
PATCHED_MARKER = "_coverage$patched"
-if sys.version_info >= (3, 4):
+if env.PYVERSION >= (3, 4):
OriginalProcess = multiprocessing.process.BaseProcess
else:
OriginalProcess = multiprocessing.Process
@@ -70,7 +70,7 @@ def patch_multiprocessing(rcfile):
if hasattr(multiprocessing, PATCHED_MARKER):
return
- if sys.version_info >= (3, 4):
+ if env.PYVERSION >= (3, 4):
OriginalProcess._bootstrap = ProcessWithCoverage._bootstrap
else:
multiprocessing.Process = ProcessWithCoverage
diff --git a/coverage/parser.py b/coverage/parser.py
index 6e6cccd5..c9eb793f 100644
--- a/coverage/parser.py
+++ b/coverage/parser.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Code parsing for coverage.py."""
diff --git a/coverage/phystokens.py b/coverage/phystokens.py
index a2b23cfc..ccfe63b3 100644
--- a/coverage/phystokens.py
+++ b/coverage/phystokens.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Better tokenizing for coverage.py."""
diff --git a/coverage/pickle2json.py b/coverage/pickle2json.py
index 95b42ef3..006558f1 100644
--- a/coverage/pickle2json.py
+++ b/coverage/pickle2json.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Convert pickle to JSON for coverage.py."""
diff --git a/coverage/plugin.py b/coverage/plugin.py
index 415246ab..f65d419c 100644
--- a/coverage/plugin.py
+++ b/coverage/plugin.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""
.. versionadded:: 4.0
diff --git a/coverage/plugin_support.py b/coverage/plugin_support.py
index c737a42c..0727a3b0 100644
--- a/coverage/plugin_support.py
+++ b/coverage/plugin_support.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Support for plugins."""
diff --git a/coverage/python.py b/coverage/python.py
index 834bc332..31db1a27 100644
--- a/coverage/python.py
+++ b/coverage/python.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Python source expertise for coverage.py"""
diff --git a/coverage/pytracer.py b/coverage/pytracer.py
index 7e70bab6..d0549f72 100644
--- a/coverage/pytracer.py
+++ b/coverage/pytracer.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Raw data collector for coverage.py."""
diff --git a/coverage/report.py b/coverage/report.py
index b4608633..e4378f6d 100644
--- a/coverage/report.py
+++ b/coverage/report.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Reporter foundation for coverage.py."""
diff --git a/coverage/results.py b/coverage/results.py
index 5f84a689..7e3bd268 100644
--- a/coverage/results.py
+++ b/coverage/results.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Results of coverage measurement."""
diff --git a/coverage/summary.py b/coverage/summary.py
index 271b648a..9fc60676 100644
--- a/coverage/summary.py
+++ b/coverage/summary.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Summary reporting"""
diff --git a/coverage/templite.py b/coverage/templite.py
index 9944695a..b546ef7c 100644
--- a/coverage/templite.py
+++ b/coverage/templite.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A simple Python template renderer, for a nano-subset of Django syntax.
diff --git a/coverage/version.py b/coverage/version.py
index 0eb9210c..2639941a 100644
--- a/coverage/version.py
+++ b/coverage/version.py
@@ -1,11 +1,11 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""The version and URL for coverage.py"""
# This file is exec'ed in setup.py, don't import anything!
# Same semantics as sys.version_info.
-version_info = (5, 0, 0, 'alpha', 0)
+version_info = (5, 0, 0, 'alpha', 2)
def _make_version(major, minor, micro, releaselevel, serial):
diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py
index 3b651d46..511270f1 100644
--- a/coverage/xmlreport.py
+++ b/coverage/xmlreport.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""XML reporting for coverage.py"""
diff --git a/doc/api.rst b/doc/api.rst
index 26db06ef..d485d90a 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _api:
diff --git a/doc/api_coverage.rst b/doc/api_coverage.rst
index 70a57eef..9ee95967 100644
--- a/doc/api_coverage.rst
+++ b/doc/api_coverage.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _api_coverage:
diff --git a/doc/api_coveragedata.rst b/doc/api_coveragedata.rst
index 75215a3d..b3b64328 100644
--- a/doc/api_coveragedata.rst
+++ b/doc/api_coveragedata.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _api_coveragedata:
diff --git a/doc/api_plugin.rst b/doc/api_plugin.rst
index e400a298..d070e2bf 100644
--- a/doc/api_plugin.rst
+++ b/doc/api_plugin.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _api_plugin:
diff --git a/doc/branch.rst b/doc/branch.rst
index f95f1d47..92cab27b 100644
--- a/doc/branch.rst
+++ b/doc/branch.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _branch:
diff --git a/doc/changes.rst b/doc/changes.rst
index 0243b5c1..1dd7b911 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _changes:
diff --git a/doc/cmd.rst b/doc/cmd.rst
index baf1ca08..d198178f 100644
--- a/doc/cmd.rst
+++ b/doc/cmd.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _cmd:
diff --git a/doc/conf.py b/doc/conf.py
index 08c88537..9936d1b9 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
#
# coverage.py documentation build configuration file, created by
@@ -56,9 +56,9 @@ copyright = u'2009\N{EN DASH}2018, Ned Batchelder' # CHANGEME
# built documents.
#
# The short X.Y version.
-version = '4.5' # CHANGEME
+version = '5.0' # CHANGEME
# The full version, including alpha/beta/rc tags.
-release = '4.5.1' # CHANGEME
+release = '5.0a1' # CHANGEME
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/doc/config.rst b/doc/config.rst
index 062aa740..3e76e3d0 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _config:
diff --git a/doc/contributing.rst b/doc/contributing.rst
index 656d2519..71fa6937 100644
--- a/doc/contributing.rst
+++ b/doc/contributing.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _contributing:
@@ -19,7 +19,7 @@ One source of history or ideas are the `bug reports`_ against coverage.py.
There you can find ideas for requested features, or the remains of rejected
ideas.
-.. _bug reports: https://bitbucket.org/ned/coveragepy/issues?status=new&status=open
+.. _bug reports: https://github.com/nedbat/coveragepy/issues
Before you begin
@@ -35,8 +35,8 @@ you frustration.
Getting the code
----------------
-The coverage.py code is hosted on a `Mercurial`_ repository at
-https://bitbucket.org/ned/coveragepy. To get a working environment, follow
+The coverage.py code is hosted on a GitHub repo at
+https://github.com/nedbat/coveragepy. To get a working environment, follow
these steps:
#. (Optional, but recommended) Create a virtualenv to work in, and activate
@@ -47,7 +47,7 @@ these steps:
#. Clone the repo::
- $ hg clone https://bitbucket.org/ned/coveragepy
+ $ git clone https://github.com/nedbat/coveragepy
$ cd coveragepy
#. Install the requirements::
@@ -117,7 +117,7 @@ the second uses the C implementation.
To limit tox to just a few versions of Python, use the ``-e`` switch::
- $ tox -e py27,py33
+ $ tox -e py27,py37
To run just a few tests, you can use `pytest test selectors`_::
@@ -128,6 +128,21 @@ To run just a few tests, you can use `pytest test selectors`_::
These command run the tests in one file, one class, and just one test,
respectively.
+You can also affect the test runs with environment variables:
+
+- COVERAGE_NO_PYTRACER disables the Python tracer if you only want to run the
+ CTracer tests.
+
+- COVERAGE_NO_CTRACER disables the C tracer if you only want to run the
+ PyTracer tests.
+
+- COVEGE_AST_DUMP will dump the AST tree as it is being used during code
+ parsing.
+
+- COVERAGE_KEEP_OUTPUT will save the output files that were generated by the
+ gold-file tests, ones that compare output files to saved gold files.
+
+
Of course, run all the tests on every version of Python you have, before
submitting a change.
@@ -174,10 +189,9 @@ Contributing
------------
When you are ready to contribute a change, any way you can get it to me is
-probably fine. A pull request on Bitbucket is great, but a simple diff or
+probably fine. A pull request on GitHub is great, but a simple diff or
patch works too.
.. _editorconfig.org: http://editorconfig.org
-.. _Mercurial: https://www.mercurial-scm.org/
.. _tox: https://tox.readthedocs.io/
diff --git a/doc/excluding.rst b/doc/excluding.rst
index 465afe16..e56cf0a7 100644
--- a/doc/excluding.rst
+++ b/doc/excluding.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _excluding:
diff --git a/doc/faq.rst b/doc/faq.rst
index fb6dc91f..293b34b0 100644
--- a/doc/faq.rst
+++ b/doc/faq.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _faq:
@@ -127,14 +127,9 @@ mailing list.
.. _Testing In Python: http://lists.idyll.org/listinfo/testing-in-python
-Bug reports are gladly accepted at the `Bitbucket issue tracker`_.
+Bug reports are gladly accepted at the `GitHub issue tracker`_.
-.. _Bitbucket issue tracker: https://bitbucket.org/ned/coveragepy/issues
-
-Announcements of new coverage.py releases are sent to the
-`coveragepy-announce`_ mailing list.
-
-.. _coveragepy-announce: http://groups.google.com/group/coveragepy-announce
+.. _GitHub issue tracker: https://github.com/nedbat/coveragepy/issues
`I can be reached`__ in a number of ways, I'm happy to answer questions about
using coverage.py.
@@ -151,4 +146,4 @@ Since 2004, `Ned Batchelder`_ has extended and maintained it with the help of
.. _Gareth Rees: http://garethrees.org/
.. _Ned Batchelder: https://nedbatchelder.com
-.. _many others: https://bitbucket.org/ned/coveragepy/src/tip/CONTRIBUTORS.txt
+.. _many others: https://github.com/nedbat/coveragepy/blob/master/CONTRIBUTORS.txt
diff --git a/doc/howitworks.rst b/doc/howitworks.rst
index 764472be..62af42e3 100644
--- a/doc/howitworks.rst
+++ b/doc/howitworks.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _howitworks:
diff --git a/doc/index.rst b/doc/index.rst
index 2df9554b..78496cdb 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
===========
Coverage.py
@@ -77,21 +77,21 @@ not.
.. ifconfig:: prerelease
- The latest version is coverage.py 4.4b1, released April 4th 2017. It is
+ The latest version is coverage.py 5.0a1, released June 5th 2018. It is
supported on:
- * Python versions 2.6, 2.7, 3.3, 3.4, 3.5, and 3.6.
+ * Python versions 2.7, 3.4, 3.5, 3.6, and 3.7.
- * PyPy2 5.6 and PyPy3 5.5.
+ * PyPy2 6.0 and PyPy3 6.0.
* Jython 2.7.1, though only for running code, not reporting.
* IronPython 2.7.7, though only for running code, not reporting.
**This is a pre-release build. The usual warnings about possible bugs
- apply.** The latest stable version is coverage.py 4.3.4, `described here`_.
+ apply.** The latest stable version is coverage.py 4.5.1, `described here`_.
-.. _described here: https://nedbatchelder.com/code/coverage
+.. _described here: http://coverage.readthedocs.io/
Quick start
@@ -180,13 +180,11 @@ coverage.py or get help using it on the `Testing In Python`_ mailing list.
.. _Testing In Python: http://lists.idyll.org/listinfo/testing-in-python
-Bug reports are gladly accepted at the `Bitbucket issue tracker`_.
-Bitbucket also hosts the `code repository`_. There is a `mirrored repo`_ on
-GitHub.
+Bug reports are gladly accepted at the `GitHub issue tracker`_.
+GitHub also hosts the `code repository`_.
-.. _Bitbucket issue tracker: https://bitbucket.org/ned/coveragepy/issues
-.. _code repository: https://bitbucket.org/ned/coveragepy
-.. _mirrored repo: https://github.com/nedbat/coveragepy
+.. _GitHub issue tracker: https://github.com/nedbat/coveragepy/issues
+.. _code repository: https://github.com/nedbat/coveragepy
`I can be reached`_ in a number of ways. I'm happy to answer questions about
using coverage.py.
diff --git a/doc/install.rst b/doc/install.rst
index 4f3717b4..037fd62a 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _install:
diff --git a/doc/plugins.rst b/doc/plugins.rst
index e4967b4b..c77c1e33 100644
--- a/doc/plugins.rst
+++ b/doc/plugins.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _plugins:
diff --git a/doc/python-coverage.1.txt b/doc/python-coverage.1.txt
index 94402b84..a415f080 100644
--- a/doc/python-coverage.1.txt
+++ b/doc/python-coverage.1.txt
@@ -8,7 +8,7 @@ measure code coverage of Python program execution
:Author: Ned Batchelder <ned@nedbatchelder.com>
:Author: |author|
-:Date: 2015-09-20
+:Date: 2018-05-28
:Copyright: Apache 2.0 license, attribution and disclaimer required.
:Manual section: 1
:Manual group: Coverage.py
@@ -219,6 +219,10 @@ COVERAGE_FILE
Path to the file where coverage measurements are collected to and
reported from. Default: ``.coverage`` in the current working directory.
+COVERAGE_RCFILE
+
+ Path to the configuration file, often named ``.coveragerc``.
+
HISTORY
=======
diff --git a/doc/requirements.pip b/doc/requirements.pip
index 299ca0eb..dbd6c8fa 100644
--- a/doc/requirements.pip
+++ b/doc/requirements.pip
@@ -3,7 +3,7 @@
# https://requires.io/github/nedbat/coveragepy/requirements/
pyenchant==2.0.0
-sphinx==1.7.4
+sphinx==1.7.5
sphinxcontrib-spelling==4.1.0
sphinx_rtd_theme==0.3.1
diff --git a/doc/source.rst b/doc/source.rst
index 640fc431..e1bc8038 100644
--- a/doc/source.rst
+++ b/doc/source.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _source:
diff --git a/doc/subprocess.rst b/doc/subprocess.rst
index 7236b7ef..06068959 100644
--- a/doc/subprocess.rst
+++ b/doc/subprocess.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _subprocess:
diff --git a/doc/trouble.rst b/doc/trouble.rst
index c0003aaf..8f260604 100644
--- a/doc/trouble.rst
+++ b/doc/trouble.rst
@@ -1,5 +1,5 @@
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
.. _trouble:
@@ -23,7 +23,7 @@ working properly.
If your problem isn't discussed here, you can of course search the `coverage.py
bug tracker`_ directly to see if there is some mention of it.
-.. _coverage.py bug tracker: https://bitbucket.org/ned/coveragepy/issues?status=new&status=open
+.. _coverage.py bug tracker: https://github.com/nedbat/coveragepy/issues
Things that don't work
diff --git a/howto.txt b/howto.txt
index 2707be51..b23757dc 100644
--- a/howto.txt
+++ b/howto.txt
@@ -10,6 +10,7 @@
- Update CHANGES.rst, including release date.
- Update README.rst
- "New in x.y:"
+ - Python versions supported
- Update docs
- Version, date and python versions in doc/index.rst
- Version and copyright date in doc/conf.py
@@ -57,7 +58,8 @@
- Update PyPi:
- upload kits:
- $ make kit_upload
- - Visit https://pypi.python.org/pypi?:action=pkg_edit&name=coverage :
+ - DON'T NEED TO DO THIS ANY MORE?
+ - Visit https://pypi.python.org/pypi?:action=pkg_edit&name=coverage :
- show/hide the proper versions.
- Tag the tree
- hg tag -m "Coverage 3.0.1" coverage-3.0.1
diff --git a/igor.py b/igor.py
index 3f5ce12b..f7ae6e66 100644
--- a/igor.py
+++ b/igor.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Helper for building, testing, and linting coverage.py.
diff --git a/lab/README.txt b/lab/README.txt
new file mode 100644
index 00000000..3263667a
--- /dev/null
+++ b/lab/README.txt
@@ -0,0 +1,4 @@
+The lab directory is not part of the installed coverage.py code. These programs
+are tools I have used while diagnosing problems, investigating functionality,
+and so on. They are not guaranteed to work, or to be suitable for any given
+purpose. If you find them useful, enjoy!
diff --git a/lab/branches.py b/lab/branches.py
index d1908d0f..c2b838dd 100644
--- a/lab/branches.py
+++ b/lab/branches.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Demonstrate some issues with coverage.py branch testing.
@@ -13,11 +13,11 @@ def my_function(x):
i = 0
while True:
- print "In while True"
+ print("In while True")
if i > 0:
break
i += 1
- print "Left the True loop"
+ print("Left the True loop")
# Notice that "while 1" also has this problem. Even though the compiler
# knows there's no computation at the top of the loop, it's still expressed
@@ -25,11 +25,11 @@ def my_function(x):
i = 0
while 1:
- print "In while 1"
+ print("In while 1")
if i > 0:
break
i += 1
- print "Left the 1 loop"
+ print("Left the 1 loop")
# Coverage.py lets developers exclude lines that they know will not be
# executed. So far, the branch coverage doesn't use all that information
@@ -40,9 +40,9 @@ def my_function(x):
if x < 1000:
# This branch is always taken
- print "x is reasonable"
+ print("x is reasonable")
else: # pragma: nocover
- print "this never happens"
+ print("this never happens")
# try-except structures are complex branches. An except clause with a
# type is a three-way branch: there could be no exception, there could be
@@ -57,9 +57,9 @@ def my_function(x):
if y % 2:
raise ValueError("y is odd!")
except ValueError:
- print "y must have been odd"
- print "done with y"
- print "done with 1, 2"
+ print("y must have been odd")
+ print("done with y")
+ print("done with 1, 2")
# Another except clause, but this time all three cases are executed. No
# partial lines are shown:
@@ -71,11 +71,11 @@ def my_function(x):
if y == 0:
raise Exception("zero!")
except ValueError:
- print "y must have been odd"
+ print("y must have been odd")
except:
- print "y is something else"
- print "done with y"
- print "done with 0, 1, 2"
+ print("y is something else")
+ print("done with y")
+ print("done with 0, 1, 2")
my_function(1)
diff --git a/lab/hack_pyc.py b/lab/hack_pyc.py
index 0ebd9948..d63da8fa 100644
--- a/lab/hack_pyc.py
+++ b/lab/hack_pyc.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
""" Wicked hack to get .pyc files to do bytecode tracing instead of
line tracing.
diff --git a/lab/parser.py b/lab/parser.py
index 0393d209..b3560506 100644
--- a/lab/parser.py
+++ b/lab/parser.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Parser.py: a main for invoking code in coverage/parser.py"""
diff --git a/lab/platform_info.py b/lab/platform_info.py
index 8caea50f..61e02dd2 100644
--- a/lab/platform_info.py
+++ b/lab/platform_info.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Dump information so we can get a quick look at what's available."""
diff --git a/lab/run_trace.py b/lab/run_trace.py
index ea0a6cb7..27c24a1d 100644
--- a/lab/run_trace.py
+++ b/lab/run_trace.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Run a simple trace function on a file of Python code."""
@@ -14,13 +14,13 @@ def trace(frame, event, arg):
# This can happen when Python is shutting down.
return None
- print "%s%s %s %d @%d" % (
+ print("%s%s %s %d @%d" % (
" " * nest,
event,
os.path.basename(frame.f_code.co_filename),
frame.f_lineno,
frame.f_lasti,
- )
+ ))
if event == 'call':
nest += 1
diff --git a/lab/show_platform.py b/lab/show_platform.py
index 76122d58..e4f4dc2a 100644
--- a/lab/show_platform.py
+++ b/lab/show_platform.py
@@ -13,4 +13,4 @@ for n in dir(platform):
n += "()"
except:
continue
- print "%30s: %r" % (n, v)
+ print("%30s: %r" % (n, v))
diff --git a/lab/show_pyc.py b/lab/show_pyc.py
index 525797a8..7573c1c3 100644
--- a/lab/show_pyc.py
+++ b/lab/show_pyc.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import binascii
import dis
diff --git a/metacov.ini b/metacov.ini
index eebfc0fd..50ea524d 100644
--- a/metacov.ini
+++ b/metacov.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Settings to use when using coverage.py to measure itself.
[run]
diff --git a/perf/perf_measure.py b/perf/perf_measure.py
index 2125251a..a8f2ffaa 100644
--- a/perf/perf_measure.py
+++ b/perf/perf_measure.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Run like this:
# .tox/py36/bin/python perf/perf_measure.py
diff --git a/perf/solve_poly.py b/perf/solve_poly.py
index 41365f48..66231725 100644
--- a/perf/solve_poly.py
+++ b/perf/solve_poly.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Given empirical data from perf_measure.py, calculate the coefficients of the
# polynomials for file, call, and line operation counts.
diff --git a/pylintrc b/pylintrc
index dd94f563..368d9184 100644
--- a/pylintrc
+++ b/pylintrc
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# lint Python modules using external checkers.
#
diff --git a/requirements/ci.pip b/requirements/ci.pip
index 12e9c698..cb94d737 100644
--- a/requirements/ci.pip
+++ b/requirements/ci.pip
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Things CI servers need to succeeed.
-r tox.pip
diff --git a/requirements/dev.pip b/requirements/dev.pip
index cf6c40ea..7616d6b4 100644
--- a/requirements/dev.pip
+++ b/requirements/dev.pip
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Requirements for doing local development work on coverage.py.
# https://requires.io/github/nedbat/coveragepy/requirements/
@@ -13,8 +13,10 @@ greenlet==0.4.13
mock==2.0.0
PyContracts==1.8.3
pyenchant==2.0.0
-pylint==1.8.4
+pylint==1.9.1
unittest-mixins==1.4
+check-manifest==0.37
+readme_renderer==21.0
# for kitting.
requests==2.18.4
diff --git a/requirements/pytest.pip b/requirements/pytest.pip
index dfa447fb..19a5ccd4 100644
--- a/requirements/pytest.pip
+++ b/requirements/pytest.pip
@@ -1,8 +1,8 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# The pytest specifics used by coverage.py
-pytest==3.5.1
+pytest==3.6.0
pytest-xdist==1.22.2
flaky==3.4.0
diff --git a/requirements/wheel.pip b/requirements/wheel.pip
index 95741643..9c6bf0ca 100644
--- a/requirements/wheel.pip
+++ b/requirements/wheel.pip
@@ -1,3 +1,3 @@
# Things needed to make wheels for coverage.py
-setuptools==39.1.0
-wheel==0.31.0
+setuptools==39.2.0
+wheel==0.31.1
diff --git a/setup.py b/setup.py
index 99874fd4..accfd18f 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Code coverage measurement for Python"""
@@ -103,7 +103,7 @@ setup_args = dict(
keywords='code coverage testing',
license='Apache 2.0',
classifiers=classifier_list,
- url="https://bitbucket.org/ned/coveragepy",
+ url="https://github.com/nedbat/coveragepy",
python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
)
diff --git a/tests/__init__.py b/tests/__init__.py
index 1ff1e1be..38f2ff8b 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,4 +1,4 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Automated tests. Run with pytest."""
diff --git a/tests/backtest.py b/tests/backtest.py
index 827e891f..979f6755 100644
--- a/tests/backtest.py
+++ b/tests/backtest.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Add things to old Pythons so I can pretend they are newer, for tests."""
diff --git a/tests/conftest.py b/tests/conftest.py
index a0c21a84..4470b751 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""
Pytest auto configuration.
diff --git a/tests/coveragetest.py b/tests/coveragetest.py
index 29d634c4..8e3fa05d 100644
--- a/tests/coveragetest.py
+++ b/tests/coveragetest.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Base test case class for coverage.py testing."""
diff --git a/tests/covmodzip1.py b/tests/covmodzip1.py
index cab64281..0133ed6a 100644
--- a/tests/covmodzip1.py
+++ b/tests/covmodzip1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Module-level docstrings are counted differently in different versions of Python,
# so don't add one here.
diff --git a/tests/eggsrc/egg1/egg1.py b/tests/eggsrc/egg1/egg1.py
index 72600808..939386e3 100644
--- a/tests/eggsrc/egg1/egg1.py
+++ b/tests/eggsrc/egg1/egg1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# My egg file!
diff --git a/tests/eggsrc/setup.py b/tests/eggsrc/setup.py
index c935798d..26a0b650 100644
--- a/tests/eggsrc/setup.py
+++ b/tests/eggsrc/setup.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
from setuptools import setup
diff --git a/tests/farm/annotate/annotate_dir.py b/tests/farm/annotate/annotate_dir.py
index 3bb2dbe7..9bf1b768 100644
--- a/tests/farm/annotate/annotate_dir.py
+++ b/tests/farm/annotate/annotate_dir.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "run")
run("""
diff --git a/tests/farm/annotate/gold/white.py,cover b/tests/farm/annotate/gold/white.py,cover
index fc163226..b190ffdb 100644
--- a/tests/farm/annotate/gold/white.py,cover
+++ b/tests/farm/annotate/gold/white.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test case sent to me by Steve White
diff --git a/tests/farm/annotate/gold_anno_dir/a_a.py,cover b/tests/farm/annotate/gold_anno_dir/a_a.py,cover
index 4729cfbb..0bd0f4a5 100644
--- a/tests/farm/annotate/gold_anno_dir/a_a.py,cover
+++ b/tests/farm/annotate/gold_anno_dir/a_a.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> def a(x):
> if x == 1:
diff --git a/tests/farm/annotate/gold_anno_dir/b_b.py,cover b/tests/farm/annotate/gold_anno_dir/b_b.py,cover
index 228715f0..49f723ac 100644
--- a/tests/farm/annotate/gold_anno_dir/b_b.py,cover
+++ b/tests/farm/annotate/gold_anno_dir/b_b.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> def b(x):
> msg = "x is %s" % x
diff --git a/tests/farm/annotate/gold_anno_dir/multi.py,cover b/tests/farm/annotate/gold_anno_dir/multi.py,cover
index 90a13c91..980f4793 100644
--- a/tests/farm/annotate/gold_anno_dir/multi.py,cover
+++ b/tests/farm/annotate/gold_anno_dir/multi.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> import a.a
> import b.b
diff --git a/tests/farm/annotate/gold_encodings/utf8.py,cover b/tests/farm/annotate/gold_encodings/utf8.py,cover
index 3ef31e0f..0bd26415 100644
--- a/tests/farm/annotate/gold_encodings/utf8.py,cover
+++ b/tests/farm/annotate/gold_encodings/utf8.py,cover
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# This comment has an accent: é
diff --git a/tests/farm/annotate/gold_multi/a/a.py,cover b/tests/farm/annotate/gold_multi/a/a.py,cover
index e5e97226..95f0d8c5 100644
--- a/tests/farm/annotate/gold_multi/a/a.py,cover
+++ b/tests/farm/annotate/gold_multi/a/a.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> def a(x):
> if x == 1:
diff --git a/tests/farm/annotate/gold_multi/b/b.py,cover b/tests/farm/annotate/gold_multi/b/b.py,cover
index 26b25548..18240bf0 100644
--- a/tests/farm/annotate/gold_multi/b/b.py,cover
+++ b/tests/farm/annotate/gold_multi/b/b.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> def b(x):
> print "x is %s" % x
diff --git a/tests/farm/annotate/gold_multi/multi.py,cover b/tests/farm/annotate/gold_multi/multi.py,cover
index 90a13c91..980f4793 100644
--- a/tests/farm/annotate/gold_multi/multi.py,cover
+++ b/tests/farm/annotate/gold_multi/multi.py,cover
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
> import a.a
> import b.b
diff --git a/tests/farm/annotate/run.py b/tests/farm/annotate/run.py
index 33e5f671..6c98a770 100644
--- a/tests/farm/annotate/run.py
+++ b/tests/farm/annotate/run.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "out")
run("""
diff --git a/tests/farm/annotate/run_encodings.py b/tests/farm/annotate/run_encodings.py
index 46d8c643..8fd98fea 100644
--- a/tests/farm/annotate/run_encodings.py
+++ b/tests/farm/annotate/run_encodings.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "out_encodings")
run("""
diff --git a/tests/farm/annotate/run_multi.py b/tests/farm/annotate/run_multi.py
index 4646293e..d3c4cf7c 100644
--- a/tests/farm/annotate/run_multi.py
+++ b/tests/farm/annotate/run_multi.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "out_multi")
run("""
diff --git a/tests/farm/annotate/src/a/a.py b/tests/farm/annotate/src/a/a.py
index e3e6631d..411d3d8e 100644
--- a/tests/farm/annotate/src/a/a.py
+++ b/tests/farm/annotate/src/a/a.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
def a(x):
if x == 1:
diff --git a/tests/farm/annotate/src/b/b.py b/tests/farm/annotate/src/b/b.py
index b31d8c95..f0055b3b 100644
--- a/tests/farm/annotate/src/b/b.py
+++ b/tests/farm/annotate/src/b/b.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
def b(x):
msg = "x is %s" % x
diff --git a/tests/farm/annotate/src/multi.py b/tests/farm/annotate/src/multi.py
index bf8cfd5f..31155b40 100644
--- a/tests/farm/annotate/src/multi.py
+++ b/tests/farm/annotate/src/multi.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import a.a
import b.b
diff --git a/tests/farm/annotate/src/utf8.py b/tests/farm/annotate/src/utf8.py
index fd43b2ab..f3988379 100644
--- a/tests/farm/annotate/src/utf8.py
+++ b/tests/farm/annotate/src/utf8.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# This comment has an accent: é
diff --git a/tests/farm/annotate/src/white.py b/tests/farm/annotate/src/white.py
index 21e8a627..56608324 100644
--- a/tests/farm/annotate/src/white.py
+++ b/tests/farm/annotate/src/white.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test case sent to me by Steve White
diff --git a/tests/farm/html/gold_a/a_py.html b/tests/farm/html/gold_a/a_py.html
index 00ab529d..da700615 100644
--- a/tests/farm/html/gold_a/a_py.html
+++ b/tests/farm/html/gold_a/a_py.html
@@ -81,7 +81,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># A test file for HTML reporting by coverage.py.</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_b_branch/b_py.html b/tests/farm/html/gold_b_branch/b_py.html
index 4a876500..839e4c98 100644
--- a/tests/farm/html/gold_b_branch/b_py.html
+++ b/tests/farm/html/gold_b_branch/b_py.html
@@ -105,7 +105,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># A test file for HTML reporting by coverage.py.</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_isolatin1/isolatin1_py.html b/tests/farm/html/gold_isolatin1/isolatin1_py.html
index bad0d78d..1c0f79d9 100644
--- a/tests/farm/html/gold_isolatin1/isolatin1_py.html
+++ b/tests/farm/html/gold_isolatin1/isolatin1_py.html
@@ -80,7 +80,7 @@
<td class="text">
<p id="t1" class="pln"><span class="com"># -*- coding: iso8859-1 -*-</span><span class="strut">&nbsp;</span></p>
<p id="t2" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t3" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t3" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="com"># A Python source file in another encoding.</span><span class="strut">&nbsp;</span></p>
<p id="t6" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_1/m1_py.html b/tests/farm/html/gold_omit_1/m1_py.html
index 44d73e49..5d954145 100644
--- a/tests/farm/html/gold_omit_1/m1_py.html
+++ b/tests/farm/html/gold_omit_1/m1_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m1a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m1b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_1/m2_py.html b/tests/farm/html/gold_omit_1/m2_py.html
index ff75cbe9..12fc6848 100644
--- a/tests/farm/html/gold_omit_1/m2_py.html
+++ b/tests/farm/html/gold_omit_1/m2_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m2a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m2b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_1/m3_py.html b/tests/farm/html/gold_omit_1/m3_py.html
index 4cdcc088..e5b40653 100644
--- a/tests/farm/html/gold_omit_1/m3_py.html
+++ b/tests/farm/html/gold_omit_1/m3_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m3a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m3b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_1/main_py.html b/tests/farm/html/gold_omit_1/main_py.html
index d33dfedc..7ae0d5f2 100644
--- a/tests/farm/html/gold_omit_1/main_py.html
+++ b/tests/farm/html/gold_omit_1/main_py.html
@@ -84,7 +84,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="key">import</span> <span class="nam">m1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="key">import</span> <span class="nam">m2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_2/m2_py.html b/tests/farm/html/gold_omit_2/m2_py.html
index ff75cbe9..12fc6848 100644
--- a/tests/farm/html/gold_omit_2/m2_py.html
+++ b/tests/farm/html/gold_omit_2/m2_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m2a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m2b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_2/m3_py.html b/tests/farm/html/gold_omit_2/m3_py.html
index 4cdcc088..e5b40653 100644
--- a/tests/farm/html/gold_omit_2/m3_py.html
+++ b/tests/farm/html/gold_omit_2/m3_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m3a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m3b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_2/main_py.html b/tests/farm/html/gold_omit_2/main_py.html
index d33dfedc..7ae0d5f2 100644
--- a/tests/farm/html/gold_omit_2/main_py.html
+++ b/tests/farm/html/gold_omit_2/main_py.html
@@ -84,7 +84,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="key">import</span> <span class="nam">m1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="key">import</span> <span class="nam">m2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_3/m3_py.html b/tests/farm/html/gold_omit_3/m3_py.html
index 4cdcc088..e5b40653 100644
--- a/tests/farm/html/gold_omit_3/m3_py.html
+++ b/tests/farm/html/gold_omit_3/m3_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m3a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m3b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_3/main_py.html b/tests/farm/html/gold_omit_3/main_py.html
index d33dfedc..7ae0d5f2 100644
--- a/tests/farm/html/gold_omit_3/main_py.html
+++ b/tests/farm/html/gold_omit_3/main_py.html
@@ -84,7 +84,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="key">import</span> <span class="nam">m1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="key">import</span> <span class="nam">m2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_4/m1_py.html b/tests/farm/html/gold_omit_4/m1_py.html
index 44d73e49..5d954145 100644
--- a/tests/farm/html/gold_omit_4/m1_py.html
+++ b/tests/farm/html/gold_omit_4/m1_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m1a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m1b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_4/m3_py.html b/tests/farm/html/gold_omit_4/m3_py.html
index 4cdcc088..e5b40653 100644
--- a/tests/farm/html/gold_omit_4/m3_py.html
+++ b/tests/farm/html/gold_omit_4/m3_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m3a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m3b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_4/main_py.html b/tests/farm/html/gold_omit_4/main_py.html
index d33dfedc..7ae0d5f2 100644
--- a/tests/farm/html/gold_omit_4/main_py.html
+++ b/tests/farm/html/gold_omit_4/main_py.html
@@ -84,7 +84,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="key">import</span> <span class="nam">m1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="key">import</span> <span class="nam">m2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_5/m1_py.html b/tests/farm/html/gold_omit_5/m1_py.html
index 44d73e49..5d954145 100644
--- a/tests/farm/html/gold_omit_5/m1_py.html
+++ b/tests/farm/html/gold_omit_5/m1_py.html
@@ -76,7 +76,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="nam">m1a</span> <span class="op">=</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="nam">m1b</span> <span class="op">=</span> <span class="num">2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_omit_5/main_py.html b/tests/farm/html/gold_omit_5/main_py.html
index d33dfedc..7ae0d5f2 100644
--- a/tests/farm/html/gold_omit_5/main_py.html
+++ b/tests/farm/html/gold_omit_5/main_py.html
@@ -84,7 +84,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="key">import</span> <span class="nam">m1</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="stm run hide_run"><span class="key">import</span> <span class="nam">m2</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_other/blah_blah_other_py.html b/tests/farm/html/gold_other/blah_blah_other_py.html
index 54861c23..4eda1194 100644
--- a/tests/farm/html/gold_other/blah_blah_other_py.html
+++ b/tests/farm/html/gold_other/blah_blah_other_py.html
@@ -78,7 +78,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># A file in another directory.&nbsp; We&#39;re checking that it ends up in the</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="com"># HTML report.</span><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_other/here_py.html b/tests/farm/html/gold_other/here_py.html
index 82aa70a2..82fc7cba 100644
--- a/tests/farm/html/gold_other/here_py.html
+++ b/tests/farm/html/gold_other/here_py.html
@@ -82,7 +82,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># A test file for HTML reporting by coverage.py.</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_partial/partial_py.html b/tests/farm/html/gold_partial/partial_py.html
index 796153f1..2d763fa3 100644
--- a/tests/farm/html/gold_partial/partial_py.html
+++ b/tests/farm/html/gold_partial/partial_py.html
@@ -94,7 +94,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># partial branches</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_styled/a_py.html b/tests/farm/html/gold_styled/a_py.html
index c8221753..af1d9121 100644
--- a/tests/farm/html/gold_styled/a_py.html
+++ b/tests/farm/html/gold_styled/a_py.html
@@ -83,7 +83,7 @@
</td>
<td class="text">
<p id="t1" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t2" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t2" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="com"># A test file for HTML reporting by coverage.py.</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/gold_styled/style.css b/tests/farm/html/gold_styled/style.css
index c3767eef..0cd0cce1 100644
--- a/tests/farm/html/gold_styled/style.css
+++ b/tests/farm/html/gold_styled/style.css
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
/* CSS styles for coverage.py. */
/* Page-wide styles */
diff --git a/tests/farm/html/gold_unicode/unicode_py.html b/tests/farm/html/gold_unicode/unicode_py.html
index 83b0f382..5a6f3ff9 100644
--- a/tests/farm/html/gold_unicode/unicode_py.html
+++ b/tests/farm/html/gold_unicode/unicode_py.html
@@ -80,7 +80,7 @@
<td class="text">
<p id="t1" class="pln"><span class="com"># -*- coding: utf-8 -*-</span><span class="strut">&nbsp;</span></p>
<p id="t2" class="pln"><span class="com"># Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0</span><span class="strut">&nbsp;</span></p>
-<p id="t3" class="pln"><span class="com"># For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
+<p id="t3" class="pln"><span class="com"># For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt</span><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="com"># A Python source file with exotic characters.</span><span class="strut">&nbsp;</span></p>
<p id="t6" class="pln"><span class="strut">&nbsp;</span></p>
diff --git a/tests/farm/html/othersrc/other.py b/tests/farm/html/othersrc/other.py
index bf0304d2..54b4fb7c 100644
--- a/tests/farm/html/othersrc/other.py
+++ b/tests/farm/html/othersrc/other.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A file in another directory. We're checking that it ends up in the
# HTML report.
diff --git a/tests/farm/html/src/a.py b/tests/farm/html/src/a.py
index 85764e21..f31bdedb 100644
--- a/tests/farm/html/src/a.py
+++ b/tests/farm/html/src/a.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test file for HTML reporting by coverage.py.
diff --git a/tests/farm/html/src/b.py b/tests/farm/html/src/b.py
index cb673c22..720cb5f1 100644
--- a/tests/farm/html/src/b.py
+++ b/tests/farm/html/src/b.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test file for HTML reporting by coverage.py.
diff --git a/tests/farm/html/src/bom.py b/tests/farm/html/src/bom.py
index 21d26ca2..098ad84f 100644
--- a/tests/farm/html/src/bom.py
+++ b/tests/farm/html/src/bom.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A Python source file in utf-8, with BOM.
math = "3×4 = 12, ÷2 = 6±0"
diff --git a/tests/farm/html/src/here.py b/tests/farm/html/src/here.py
index fee9960d..ca85c75d 100644
--- a/tests/farm/html/src/here.py
+++ b/tests/farm/html/src/here.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test file for HTML reporting by coverage.py.
diff --git a/tests/farm/html/src/isolatin1.py b/tests/farm/html/src/isolatin1.py
index 55a6f7de..69b4a529 100644
--- a/tests/farm/html/src/isolatin1.py
+++ b/tests/farm/html/src/isolatin1.py
@@ -1,6 +1,6 @@
# -*- coding: iso8859-1 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A Python source file in another encoding.
diff --git a/tests/farm/html/src/m1.py b/tests/farm/html/src/m1.py
index 524fb0aa..bef6c9ae 100644
--- a/tests/farm/html/src/m1.py
+++ b/tests/farm/html/src/m1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
m1a = 1
m1b = 2
diff --git a/tests/farm/html/src/m2.py b/tests/farm/html/src/m2.py
index 2d13bfe2..ac75070a 100644
--- a/tests/farm/html/src/m2.py
+++ b/tests/farm/html/src/m2.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
m2a = 1
m2b = 2
diff --git a/tests/farm/html/src/m3.py b/tests/farm/html/src/m3.py
index 96e8b992..a6f871cd 100644
--- a/tests/farm/html/src/m3.py
+++ b/tests/farm/html/src/m3.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
m3a = 1
m3b = 2
diff --git a/tests/farm/html/src/main.py b/tests/farm/html/src/main.py
index 238d0b58..3d0eba65 100644
--- a/tests/farm/html/src/main.py
+++ b/tests/farm/html/src/main.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import m1
import m2
diff --git a/tests/farm/html/src/omit4.ini b/tests/farm/html/src/omit4.ini
index b792e703..844d3fd0 100644
--- a/tests/farm/html/src/omit4.ini
+++ b/tests/farm/html/src/omit4.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
[report]
omit = m2.py
diff --git a/tests/farm/html/src/omit5.ini b/tests/farm/html/src/omit5.ini
index 3b6add29..2615c056 100644
--- a/tests/farm/html/src/omit5.ini
+++ b/tests/farm/html/src/omit5.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
[report]
omit =
diff --git a/tests/farm/html/src/partial.ini b/tests/farm/html/src/partial.ini
index cdb241b5..86a1b9bd 100644
--- a/tests/farm/html/src/partial.ini
+++ b/tests/farm/html/src/partial.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
[run]
branch = True
diff --git a/tests/farm/html/src/partial.py b/tests/farm/html/src/partial.py
index 0f8fbe3c..ea97ec4f 100644
--- a/tests/farm/html/src/partial.py
+++ b/tests/farm/html/src/partial.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# partial branches and excluded lines
diff --git a/tests/farm/html/src/run_a_xml_2.ini b/tests/farm/html/src/run_a_xml_2.ini
index f632bd09..85ba5e8b 100644
--- a/tests/farm/html/src/run_a_xml_2.ini
+++ b/tests/farm/html/src/run_a_xml_2.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Put all the XML output in xml_2
[xml]
diff --git a/tests/farm/html/src/tabbed.py b/tests/farm/html/src/tabbed.py
index e897e9fa..573ab126 100644
--- a/tests/farm/html/src/tabbed.py
+++ b/tests/farm/html/src/tabbed.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# This file should have tabs.
x = 1
diff --git a/tests/farm/html/src/unicode.py b/tests/farm/html/src/unicode.py
index 37c5533a..c592935b 100644
--- a/tests/farm/html/src/unicode.py
+++ b/tests/farm/html/src/unicode.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A Python source file with exotic characters.
diff --git a/tests/farm/html/src/y.py b/tests/farm/html/src/y.py
index a50bb629..3ed0ba49 100644
--- a/tests/farm/html/src/y.py
+++ b/tests/farm/html/src/y.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# A test file for XML reporting by coverage.py.
diff --git a/tests/farm/run/run_chdir.py b/tests/farm/run/run_chdir.py
index 1da4e9a3..5ec0b4ea 100644
--- a/tests/farm/run/run_chdir.py
+++ b/tests/farm/run/run_chdir.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "out_chdir")
run("""
diff --git a/tests/farm/run/run_timid.py b/tests/farm/run/run_timid.py
index 0370cf84..56456618 100644
--- a/tests/farm/run/run_timid.py
+++ b/tests/farm/run/run_timid.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Test that the --timid command line argument properly swaps the tracer
# function for a simpler one.
diff --git a/tests/farm/run/run_xxx.py b/tests/farm/run/run_xxx.py
index 1db5b0d0..3caba0ec 100644
--- a/tests/farm/run/run_xxx.py
+++ b/tests/farm/run/run_xxx.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
copy("src", "out_xxx")
run("""
diff --git a/tests/farm/run/src/chdir.py b/tests/farm/run/src/chdir.py
index 35cfcc81..250f7132 100644
--- a/tests/farm/run/src/chdir.py
+++ b/tests/farm/run/src/chdir.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import os
print("Line One")
diff --git a/tests/farm/run/src/showtrace.py b/tests/farm/run/src/showtrace.py
index 3a2750a6..a3692521 100644
--- a/tests/farm/run/src/showtrace.py
+++ b/tests/farm/run/src/showtrace.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Show the current frame's trace function, so that we can test what the
# command-line options do to the trace function used.
diff --git a/tests/farm/run/src/xxx b/tests/farm/run/src/xxx
index 864da457..818c7f93 100644
--- a/tests/farm/run/src/xxx
+++ b/tests/farm/run/src/xxx
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# This is a python file though it doesn't look like it, like a main script.
a = b = c = d = 0
diff --git a/tests/goldtest.py b/tests/goldtest.py
index baaa8f01..8f24f239 100644
--- a/tests/goldtest.py
+++ b/tests/goldtest.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A test base class for tests based on gold file comparison."""
diff --git a/tests/helpers.py b/tests/helpers.py
index f10169a9..bc9c3982 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Helpers for coverage.py tests."""
diff --git a/tests/js/tests.js b/tests/js/tests.js
index bf2ca734..7bd3b9ca 100644
--- a/tests/js/tests.js
+++ b/tests/js/tests.js
@@ -1,5 +1,5 @@
/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
-/* For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt */
+/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */
// Tests of coverage.py HTML report chunk navigation.
/*global coverage, jQuery, $ */
diff --git a/tests/modules/covmod1.py b/tests/modules/covmod1.py
index 0f9638b8..618f1d04 100644
--- a/tests/modules/covmod1.py
+++ b/tests/modules/covmod1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# covmod1.py: Simplest module for testing.
i = 1
diff --git a/tests/modules/namespace_420/sub1/__init__.py b/tests/modules/namespace_420/sub1/__init__.py
index 94bb2959..4a8721ab 100644
--- a/tests/modules/namespace_420/sub1/__init__.py
+++ b/tests/modules/namespace_420/sub1/__init__.py
@@ -1,4 +1,4 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
sub1 = "namespace_420 sub1"
diff --git a/tests/modules/pkg1/p1a.py b/tests/modules/pkg1/p1a.py
index 5d81b1fa..984bf748 100644
--- a/tests/modules/pkg1/p1a.py
+++ b/tests/modules/pkg1/p1a.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import os, sys
diff --git a/tests/modules/pkg1/p1b.py b/tests/modules/pkg1/p1b.py
index 53505cef..dc6d0b17 100644
--- a/tests/modules/pkg1/p1b.py
+++ b/tests/modules/pkg1/p1b.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
x = 1
y = 2
diff --git a/tests/modules/pkg1/p1c.py b/tests/modules/pkg1/p1c.py
index 98f319e8..24e2932c 100644
--- a/tests/modules/pkg1/p1c.py
+++ b/tests/modules/pkg1/p1c.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
a = 1
b = 2
diff --git a/tests/modules/pkg1/runmod2.py b/tests/modules/pkg1/runmod2.py
index 5911db7b..b0f43c2e 100644
--- a/tests/modules/pkg1/runmod2.py
+++ b/tests/modules/pkg1/runmod2.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Used in the tests for run_python_module
import sys
diff --git a/tests/modules/pkg1/sub/ps1a.py b/tests/modules/pkg1/sub/ps1a.py
index 44d3b274..b895fc60 100644
--- a/tests/modules/pkg1/sub/ps1a.py
+++ b/tests/modules/pkg1/sub/ps1a.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
d = 1
e = 2
diff --git a/tests/modules/pkg1/sub/runmod3.py b/tests/modules/pkg1/sub/runmod3.py
index 1f5ce27e..b3b40327 100644
--- a/tests/modules/pkg1/sub/runmod3.py
+++ b/tests/modules/pkg1/sub/runmod3.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Used in the tests for run_python_module
import sys
diff --git a/tests/modules/pkg2/p2a.py b/tests/modules/pkg2/p2a.py
index 62caae22..f3f86f99 100644
--- a/tests/modules/pkg2/p2a.py
+++ b/tests/modules/pkg2/p2a.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
q = 1
r = 1
diff --git a/tests/modules/pkg2/p2b.py b/tests/modules/pkg2/p2b.py
index 73716eb4..38d7a840 100644
--- a/tests/modules/pkg2/p2b.py
+++ b/tests/modules/pkg2/p2b.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
t = 1
u = 1
diff --git a/tests/modules/plugins/another.py b/tests/modules/plugins/another.py
index 80902d34..dfe03c97 100644
--- a/tests/modules/plugins/another.py
+++ b/tests/modules/plugins/another.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A plugin for tests to reference."""
diff --git a/tests/modules/process_test/try_execfile.py b/tests/modules/process_test/try_execfile.py
index 3068327e..706fe39f 100644
--- a/tests/modules/process_test/try_execfile.py
+++ b/tests/modules/process_test/try_execfile.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Test file for run_python_file.
diff --git a/tests/modules/runmod1.py b/tests/modules/runmod1.py
index b43b299a..cb1f7e99 100644
--- a/tests/modules/runmod1.py
+++ b/tests/modules/runmod1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Used in the tests for run_python_module
import sys
diff --git a/tests/modules/usepkgs.py b/tests/modules/usepkgs.py
index 222e68ce..63ce7c18 100644
--- a/tests/modules/usepkgs.py
+++ b/tests/modules/usepkgs.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
import pkg1.p1a, pkg1.p1b, pkg1.sub
import pkg2.p2a, pkg2.p2b
diff --git a/tests/moremodules/namespace_420/sub2/__init__.py b/tests/moremodules/namespace_420/sub2/__init__.py
index 0839688c..b5e413cc 100644
--- a/tests/moremodules/namespace_420/sub2/__init__.py
+++ b/tests/moremodules/namespace_420/sub2/__init__.py
@@ -1,4 +1,4 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
sub2 = "namespace_420 sub2"
diff --git a/tests/moremodules/othermods/othera.py b/tests/moremodules/othermods/othera.py
index b3ee9c04..56cdfe80 100644
--- a/tests/moremodules/othermods/othera.py
+++ b/tests/moremodules/othermods/othera.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
o = 1
p = 2
diff --git a/tests/moremodules/othermods/otherb.py b/tests/moremodules/othermods/otherb.py
index 334fdc4a..50ba96a3 100644
--- a/tests/moremodules/othermods/otherb.py
+++ b/tests/moremodules/othermods/otherb.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
q = 3
r = 4
diff --git a/tests/moremodules/othermods/sub/osa.py b/tests/moremodules/othermods/sub/osa.py
index 4005640e..5e5a5ff5 100644
--- a/tests/moremodules/othermods/sub/osa.py
+++ b/tests/moremodules/othermods/sub/osa.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
s = 5
t = 6
diff --git a/tests/moremodules/othermods/sub/osb.py b/tests/moremodules/othermods/sub/osb.py
index 7d96fb79..c150087d 100644
--- a/tests/moremodules/othermods/sub/osb.py
+++ b/tests/moremodules/othermods/sub/osb.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
u = 7
v = 8
diff --git a/tests/osinfo.py b/tests/osinfo.py
index 094fb097..f9562deb 100644
--- a/tests/osinfo.py
+++ b/tests/osinfo.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""OS information for testing."""
diff --git a/tests/plugin1.py b/tests/plugin1.py
index e03dadf1..a070af36 100644
--- a/tests/plugin1.py
+++ b/tests/plugin1.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A file tracer plugin for test_plugins.py to import."""
diff --git a/tests/plugin2.py b/tests/plugin2.py
index c1ab1c23..c334628a 100644
--- a/tests/plugin2.py
+++ b/tests/plugin2.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A file tracer plugin for test_plugins.py to import."""
diff --git a/tests/plugin_config.py b/tests/plugin_config.py
index 67a790a2..c4d3cf65 100644
--- a/tests/plugin_config.py
+++ b/tests/plugin_config.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""A configuring plugin for test_plugins.py to import."""
diff --git a/tests/stress_phystoken.tok b/tests/stress_phystoken.tok
index eb2fb669..f2b190c3 100644
--- a/tests/stress_phystoken.tok
+++ b/tests/stress_phystoken.tok
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Here's some random Python so that test_tokenize_myself will have some
# stressful stuff to try. This file is .tok instead of .py so pylint won't
diff --git a/tests/stress_phystoken_dos.tok b/tests/stress_phystoken_dos.tok
index 5b016a77..eb937d95 100644
--- a/tests/stress_phystoken_dos.tok
+++ b/tests/stress_phystoken_dos.tok
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
# Here's some random Python so that test_tokenize_myself will have some
# stressful stuff to try. This file is .tok instead of .py so pylint won't
diff --git a/tests/test_api.py b/tests/test_api.py
index feb8b2e6..248784ff 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py's API."""
diff --git a/tests/test_arcs.py b/tests/test_arcs.py
index 4bd804ba..c86147b7 100644
--- a/tests/test_arcs.py
+++ b/tests/test_arcs.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py's arc measurement."""
diff --git a/tests/test_backward.py b/tests/test_backward.py
index bbecb780..8acb8707 100644
--- a/tests/test_backward.py
+++ b/tests/test_backward.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests that our version shims in backward.py are working."""
diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py
index 66fcec3a..b6fad76d 100644
--- a/tests/test_cmdline.py
+++ b/tests/test_cmdline.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Test cmdline.py for coverage.py."""
diff --git a/tests/test_collector.py b/tests/test_collector.py
index bd963415..9989b229 100644
--- a/tests/test_collector.py
+++ b/tests/test_collector.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of coverage/collector.py and other collectors."""
diff --git a/tests/test_concurrency.py b/tests/test_concurrency.py
index 88f2b50d..7d54a97f 100644
--- a/tests/test_concurrency.py
+++ b/tests/test_concurrency.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for concurrency libraries."""
diff --git a/tests/test_config.py b/tests/test_config.py
index bbfa4677..513522ee 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Test the config file handling for coverage.py"""
diff --git a/tests/test_coverage.py b/tests/test_coverage.py
index 45abb2be..676fc831 100644
--- a/tests/test_coverage.py
+++ b/tests/test_coverage.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py."""
@@ -582,12 +582,7 @@ class SimpleStatementTest(CoverageTest):
""",
[2, 3]
)
- if env.PYVERSION < (3, 7):
- # Before 3.7, module docstrings were included in the lnotab table,
- # unless they were the first line in the file?
- lines = [2, 3, 4]
- else:
- lines = [3, 4]
+ lines = [2, 3, 4]
self.check_coverage("""\
# Start with a comment, because it changes the behavior(!?)
'''I am a module docstring.'''
@@ -1147,11 +1142,7 @@ class CompoundStatementTest(CoverageTest):
[1,10,12,13], "")
def test_class_def(self):
- if env.PYVERSION < (3, 7):
- arcz="-22 2D DE E-2 23 36 6A A-2 -68 8-6 -AB B-A"
- else:
- # Python 3.7 no longer includes class docstrings in the lnotab table.
- arcz="-22 2D DE E-2 26 6A A-2 -68 8-6 -AB B-A"
+ arcz="-22 2D DE E-2 23 36 6A A-2 -68 8-6 -AB B-A"
self.check_coverage("""\
# A comment.
class theClass:
diff --git a/tests/test_data.py b/tests/test_data.py
index 46999f63..0d3172d4 100644
--- a/tests/test_data.py
+++ b/tests/test_data.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.data"""
diff --git a/tests/test_debug.py b/tests/test_debug.py
index c81ca24d..2699ca61 100644
--- a/tests/test_debug.py
+++ b/tests/test_debug.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of coverage/debug.py"""
diff --git a/tests/test_execfile.py b/tests/test_execfile.py
index 693df71a..cb835c2a 100644
--- a/tests/test_execfile.py
+++ b/tests/test_execfile.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.execfile"""
diff --git a/tests/test_farm.py b/tests/test_farm.py
index 8927cf86..c9969c85 100644
--- a/tests/test_farm.py
+++ b/tests/test_farm.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Run tests in the farm sub-directory. Designed for pytest."""
@@ -36,7 +36,7 @@ def test_farm(filename):
# "rU" was deprecated in 3.4
-READ_MODE = "rU" if sys.version_info < (3, 4) else "r"
+READ_MODE = "rU" if env.PYVERSION < (3, 4) else "r"
class FarmTestCase(ModuleAwareMixin, SysPathAwareMixin, unittest.TestCase):
@@ -103,7 +103,7 @@ class FarmTestCase(ModuleAwareMixin, SysPathAwareMixin, unittest.TestCase):
"""Here to make unittest.TestCase happy, but will never be invoked."""
raise Exception("runTest isn't used in this class!")
- def __call__(self):
+ def __call__(self): # pylint: disable=arguments-differ
"""Execute the test from the runpy file."""
if _TEST_NAME_FILE: # pragma: debugging
with open(_TEST_NAME_FILE, "w") as f:
diff --git a/tests/test_filereporter.py b/tests/test_filereporter.py
index 91e47762..e50a7493 100644
--- a/tests/test_filereporter.py
+++ b/tests/test_filereporter.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for FileReporters"""
diff --git a/tests/test_files.py b/tests/test_files.py
index dd88b6eb..2e705a1b 100644
--- a/tests/test_files.py
+++ b/tests/test_files.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for files.py"""
diff --git a/tests/test_html.py b/tests/test_html.py
index 9bb8f392..4abe18ef 100644
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests that HTML generation is awesome."""
@@ -640,6 +640,12 @@ class HtmlGoldTests(CoverageGoldTest):
self.output_dir("out/bom")
with change_dir("src"):
+ # It's important that the source file really have a BOM, which can
+ # get lost, so check that it's really there.
+ with open("bom.py", "rb") as f:
+ first_three = f.read(3)
+ assert first_three == b"\xef\xbb\xbf"
+
# pylint: disable=import-error
cov = coverage.Coverage()
cov.start()
diff --git a/tests/test_misc.py b/tests/test_misc.py
index 939b1c98..f3d485cc 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of miscellaneous stuff."""
diff --git a/tests/test_oddball.py b/tests/test_oddball.py
index 5bd204d9..5d615c35 100644
--- a/tests/test_oddball.py
+++ b/tests/test_oddball.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Oddball cases for testing coverage.py"""
diff --git a/tests/test_parser.py b/tests/test_parser.py
index 89ef6dc4..c2d70ee5 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py's code parsing."""
@@ -165,11 +165,7 @@ class PythonParserTest(CoverageTest):
def func(x=25):
return 26
""")
- if env.PYVERSION < (3, 7):
- raw_statements = set([3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 20, 22, 23, 25, 26])
- else:
- # Python 3.7 no longer includes class docstrings in the lnotab table.
- raw_statements = set([3, 4, 5, 6, 8, 10, 13, 15, 16, 17, 20, 22, 23, 25, 26])
+ raw_statements = set([3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 20, 22, 23, 25, 26])
self.assertEqual(parser.raw_statements, raw_statements)
self.assertEqual(parser.statements, set([8]))
@@ -201,8 +197,14 @@ class PythonParserTest(CoverageTest):
pass
""")
self.assertEqual(parser.statements, set([1, 2, 4, 8, 10]))
- self.assertEqual(parser.arcs(), set(self.arcz_to_arcs(".1 14 48 8. .2 2. -8A A-8")))
- self.assertEqual(parser.exit_counts(), {1: 1, 2: 1, 4: 1, 8: 1, 10: 1})
+ expected_arcs = set(self.arcz_to_arcs(".1 14 48 8. .2 2. -8A A-8"))
+ expected_exits = {1: 1, 2: 1, 4: 1, 8: 1, 10: 1}
+ if env.PYVERSION >= (3, 7, 0, 'beta', 5):
+ # 3.7 changed how functions with only docstrings are numbered.
+ expected_arcs.update(set(self.arcz_to_arcs("-46 6-4")))
+ expected_exits.update({6: 1})
+ self.assertEqual(parser.arcs(), expected_arcs)
+ self.assertEqual(parser.exit_counts(), expected_exits)
class ParserMissingArcDescriptionTest(CoverageTest):
diff --git a/tests/test_phystokens.py b/tests/test_phystokens.py
index 15bc6af0..1045225e 100644
--- a/tests/test_phystokens.py
+++ b/tests/test_phystokens.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py's improved tokenizer."""
diff --git a/tests/test_pickle2json.py b/tests/test_pickle2json.py
index 433dade6..37886bac 100644
--- a/tests/test_pickle2json.py
+++ b/tests/test_pickle2json.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.pickle2json"""
diff --git a/tests/test_plugins.py b/tests/test_plugins.py
index 27227c33..c9a8feae 100644
--- a/tests/test_plugins.py
+++ b/tests/test_plugins.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for plugins."""
diff --git a/tests/test_process.py b/tests/test_process.py
index f0b1cde1..b4a88178 100644
--- a/tests/test_process.py
+++ b/tests/test_process.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for process behavior of coverage.py."""
@@ -659,9 +659,6 @@ class ProcessTest(CoverageTest):
self.assertGreater(data.line_counts()['os.py'], 50)
def test_lang_c(self):
- if env.PY3 and sys.version_info < (3, 4):
- # Python 3.3 can't compile the non-ascii characters in the file name.
- self.skipTest("3.3 can't handle this test")
if env.JYTHON:
# Jython as of 2.7.1rc3 won't compile a filename that isn't utf8.
self.skipTest("Jython can't handle this test")
@@ -768,7 +765,7 @@ class EnvironmentTest(CoverageTest):
self.assert_tryexecfile_output(out_cov, out_py)
def test_coverage_run_dir_is_like_python_dir(self):
- if sys.version_info == (3, 5, 4, 'final', 0): # pragma: obscure
+ if env.PYVERSION == (3, 5, 4, 'final', 0): # pragma: obscure
self.skipTest("3.5.4 broke this: https://bugs.python.org/issue32551")
with open(TRY_EXECFILE) as f:
self.make_file("with_main/__main__.py", f.read())
diff --git a/tests/test_python.py b/tests/test_python.py
index 9027aa6c..441ef499 100644
--- a/tests/test_python.py
+++ b/tests/test_python.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of coverage/python.py"""
diff --git a/tests/test_results.py b/tests/test_results.py
index deaf8113..307ef762 100644
--- a/tests/test_results.py
+++ b/tests/test_results.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.py's results analysis."""
diff --git a/tests/test_setup.py b/tests/test_setup.py
index 78fcefc9..d786ca05 100644
--- a/tests/test_setup.py
+++ b/tests/test_setup.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of miscellaneous stuff."""
@@ -28,7 +28,7 @@ class SetupPyTest(CoverageTest):
out = output.splitlines()
self.assertIn("measurement", out[0])
self.assertEqual(coverage.__version__, out[1])
- self.assertIn("bitbucket.org/ned/coveragepy", out[2])
+ self.assertIn("github.com/nedbat/coveragepy", out[2])
self.assertIn("Ned Batchelder", out[3])
def test_more_metadata(self):
diff --git a/tests/test_summary.py b/tests/test_summary.py
index 44defa5b..b404f1ff 100644
--- a/tests/test_summary.py
+++ b/tests/test_summary.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Test text-based summary reporting for coverage.py"""
diff --git a/tests/test_templite.py b/tests/test_templite.py
index bcc65f94..16942db8 100644
--- a/tests/test_templite.py
+++ b/tests/test_templite.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for coverage.templite."""
diff --git a/tests/test_testing.py b/tests/test_testing.py
index 05bf0c92..d8cd0ef0 100644
--- a/tests/test_testing.py
+++ b/tests/test_testing.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests that our test infrastructure is really working!"""
diff --git a/tests/test_version.py b/tests/test_version.py
index eb8de875..11b180d5 100644
--- a/tests/test_version.py
+++ b/tests/test_version.py
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of version.py."""
diff --git a/tests/test_xml.py b/tests/test_xml.py
index b49debc9..acb82a48 100644
--- a/tests/test_xml.py
+++ b/tests/test_xml.py
@@ -1,6 +1,6 @@
# coding: utf-8
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests for XML reports from coverage.py."""
diff --git a/tox.ini b/tox.ini
index 4cec188b..6a2fcb56 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
[tox]
envlist = py{27,34,35,36,37}, pypy{2,3}, jython, doc, lint
@@ -19,8 +19,9 @@ deps =
PyContracts==1.8.3
unittest-mixins==1.4
#-e/Users/ned/unittest_mixins
+ # gevent 1.3 causes a failure: https://bitbucket.org/ned/coveragepy/issues/663/gevent-132-on-windows-fails
py{27,34,35,36}: gevent==1.2.2
- py{27,34,35,36,37}: eventlet==0.22.1
+ py{27,34,35,36,37}: eventlet==0.23.0
py{27,34,35,36,37}: greenlet==0.4.13
# Windows can't update the pip version with pip running, so use Python
@@ -81,6 +82,8 @@ setenv =
LINTABLE = coverage tests igor.py setup.py __main__.py
commands =
- python -m pylint --notes= {env:LINTABLE}
python -m tabnanny {env:LINTABLE}
python igor.py check_eol
+ check-manifest --ignore 'lab*,perf*,doc/sample_html*,.treerc'
+ python setup.py check -r -s
+ python -m pylint --notes= {env:LINTABLE}
diff --git a/tox_wheels.ini b/tox_wheels.ini
index adf48bf7..121b0331 100644
--- a/tox_wheels.ini
+++ b/tox_wheels.ini
@@ -1,5 +1,5 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
[tox]
envlist = py{27,34,35,36,sys}