Skip to content

Releases: nedbat/coveragepy

5.1

13 Oct 23:34
Compare
Choose a tag to compare
5.1

Version 5.1 — 2020-04-12

  • The JSON report now includes counts of covered and missing branches. Thanks, Salvatore Zagaria.
  • On Python 3.8, try-finally-return reported wrong branch coverage with decorated async functions (issue 964). This is now fixed. Thanks, Kjell Braden.
  • The get_option() and set_option() methods can now manipulate the [paths] configuration setting. Thanks to Bernát Gábor for the fix for issue 967.

➡️  PyPI page: coverage 5.1.
➡️  To install: python3 -m pip install coverage==5.1

5.0.4

13 Oct 23:34
Compare
Choose a tag to compare

Version 5.0.4 — 2020-03-16

  • If using the [run] relative_files setting, the XML report will use relative files in the <source> elements indicating the location of source code. Closes issue 948.
  • The textual summary report could report missing lines with negative line numbers on PyPy3 7.1 (issue 943). This is now fixed.
  • Windows wheels for Python 3.8 were incorrectly built, but are now fixed. (issue 949)
  • Updated Python 3.9 support to 3.9a4.
  • HTML reports couldn’t be sorted if localStorage wasn’t available. This is now fixed: sorting works even though the sorting setting isn’t retained. (issue 944 and pull request 945). Thanks, Abdeali Kothari.

➡️  PyPI page: coverage 5.0.4.
➡️  To install: python3 -m pip install coverage==5.0.4

5.0.3

13 Oct 23:34
Compare
Choose a tag to compare

Version 5.0.3 — 2020-01-12

  • A performance improvement in 5.0.2 didn’t work for test suites that changed directory before combining data, causing “Couldn’t use data file: no such table: meta” errors (issue 916). This is now fixed.
  • Coverage could fail to run your program with some form of “ModuleNotFound” or “ImportError” trying to import from the current directory. This would happen if coverage had been packaged into a zip file (for example, on Windows), or was found indirectly (for example, by pyenv-virtualenv). A number of different scenarios were described in issue 862 which is now fixed. Huge thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and George-Cristian Bîrzan for protracted debugging sessions.
  • Added the “premain” debug option.
  • Added SQLite compile-time options to the “debug sys” output.

➡️  PyPI page: coverage 5.0.3.
➡️  To install: python3 -m pip install coverage==5.0.3

5.0.2

13 Oct 23:34
Compare
Choose a tag to compare

Version 5.0.2 — 2020-01-05

  • Programs that used multiprocessing and changed directories would fail under coverage. This is now fixed (issue 890). A side effect is that debug information about the config files read now shows absolute paths to the files.
  • When running programs as modules (coverage run -m) with --source, some measured modules were imported before coverage starts. This resulted in unwanted warnings (“Already imported a file that will be measured”) and a reduction in coverage totals (issue 909). This is now fixed.
  • If no data was collected, an exception about “No data to report” could happen instead of a 0% report being created (issue 884). This is now fixed.
  • The handling of source files with non-encodable file names has changed. Previously, if a file name could not be encoded as UTF-8, an error occurred, as described in issue 891. Now, those files will not be measured, since their data would not be recordable.
  • A new warning (“dynamic-conflict”) is issued if two mechanisms are trying to change the dynamic context. Closes issue 901.
  • coverage run --debug=sys would fail with an AttributeError. This is now fixed (issue 907).

➡️  PyPI page: coverage 5.0.2.
➡️  To install: python3 -m pip install coverage==5.0.2

5.0.1

13 Oct 23:34
Compare
Choose a tag to compare

Version 5.0.1 — 2019-12-22

  • If a 4.x data file is the cause of a “file is not a database” error, then use a more specific error message, “Looks like a coverage 4.x data file, are you mixing versions of coverage?” Helps diagnose the problems described in issue 886.
  • Measurement contexts and relative file names didn’t work together, as reported in issue 899 and issue 900. This is now fixed, thanks to David Szotten.
  • When using coverage run --concurrency=multiprocessing, all data files should be named with parallel-ready suffixes. 5.0 mistakenly named the main process’ file with no suffix when using --append. This is now fixed, closing issue 880.
  • Fixed a problem on Windows when the current directory is changed to a different drive (issue 895). Thanks, Olivier Grisel.
  • Updated Python 3.9 support to 3.9a2.

➡️  PyPI page: coverage 5.0.1.
➡️  To install: python3 -m pip install coverage==5.0.1

5.0

13 Oct 23:34
Compare
Choose a tag to compare
5.0

Version 5.0 — 2019-12-14

Nothing new beyond 5.0b2.

A summary of major changes in 5.0 since 4.5.x is in see Major changes in 5.0.

➡️  PyPI page: coverage 5.0.
➡️  To install: python3 -m pip install coverage==5.0

5.0b2

13 Oct 23:34
Compare
Choose a tag to compare
5.0b2 Pre-release
Pre-release

Version 5.0b2 — 2019-12-08

  • An experimental [run] relative_files setting tells coverage to store relative file names in the data file. This makes it easier to run tests in one (or many) environments, and then report in another. It has not had much real-world testing, so it may change in incompatible ways in the future.
  • When constructing a coverage.Coverage object, data_file can be specified as None to prevent writing any data file at all. In previous versions, an explicit data_file=None argument would use the default of “.coverage”. Fixes issue 871.
  • Python files run with -m now have __spec__ defined properly. This fixes issue 745 (about not being able to run unittest tests that spawn subprocesses), and issue 838, which described the problem directly.
  • The [paths] configuration section is now ordered. If you specify more than one list of patterns, the first one that matches will be used. Fixes issue 649.
  • The coverage.numbits.register_sqlite_functions() function now also registers numbits_to_nums for use in SQLite queries. Thanks, Simon Willison.
  • Python 3.9a1 is supported.
  • Coverage.py has a mascot: Sleepy Snake.

➡️  PyPI page: coverage 5.0b2.
➡️  To install: python3 -m pip install coverage==5.0b2

5.0b1

13 Oct 23:34
Compare
Choose a tag to compare
5.0b1 Pre-release
Pre-release

Version 5.0b1 — 2019-11-11

  • The HTML and textual reports now have a --skip-empty option that skips files with no statements, notably __init__.py files. Thanks, Reya B.
  • Configuration can now be read from TOML files. This requires installing coverage.py with the [toml] extra. The standard “pyproject.toml” file will be read automatically if no other configuration file is found, with settings in the [tool.coverage.] namespace. Thanks to Frazer McLean for implementation and persistence. Finishes issue 664.
  • The [run] note setting has been deprecated. Using it will result in a warning, and the note will not be written to the data file. The corresponding CoverageData methods have been removed.
  • The HTML report has been reimplemented (no more table around the source code). This allowed for a better presentation of the context information, hopefully resolving issue 855.
  • Added sqlite3 module version information to coverage debug sys output.
  • Asking the HTML report to show contexts ([html] show_contexts=True or coverage html --show-contexts) will issue a warning if there were no contexts measured (issue 851).

➡️  PyPI page: coverage 5.0b1.
➡️  To install: python3 -m pip install coverage==5.0b1

5.0a8

13 Oct 23:34
Compare
Choose a tag to compare
5.0a8 Pre-release
Pre-release

Version 5.0a8 — 2019-10-02

➡️  PyPI page: coverage 5.0a8.
➡️  To install: python3 -m pip install coverage==5.0a8

5.0a7

13 Oct 23:34
Compare
Choose a tag to compare
5.0a7 Pre-release
Pre-release

Version 5.0a7 — 2019-09-21

  • Data can now be “reported” in JSON format, for programmatic use, as requested in issue 720. The new coverage json command writes raw and summarized data to a JSON file. Thanks, Matt Bachmann.
  • Dynamic contexts are now supported in the Python tracer, which is important for PyPy users. Closes issue 846.
  • The compact line number representation introduced in 5.0a6 is called a “numbits.” The coverage.numbits module provides functions for working with them.
  • The reporting methods used to permanently apply their arguments to the configuration of the Coverage object. Now they no longer do. The arguments affect the operation of the method, but do not persist.
  • A class named “test_something” no longer confuses the test_function dynamic context setting. Fixes issue 829.
  • Fixed an unusual tokenizing issue with backslashes in comments. Fixes issue 822.
  • debug=plugin didn’t properly support configuration or dynamic context plugins, but now it does, closing issue 834.

➡️  PyPI page: coverage 5.0a7.
➡️  To install: python3 -m pip install coverage==5.0a7