You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore(deps): update dependency coverage to v7.17.1 - #860
Fix: a one-line class or function body immediately followed by another
statement (such as class Foo: ... on its own line) was incorrectly
reported as a missing branch when using the sys.monitoring core. This is now
fixed, closing issue 2167_ and issue 2337_.
Fix: the HTML report only rewrites a file's page when the file or its data
has changed, but each page also links to the previous and next files. When
the set of reported files changed, unchanged pages kept their old links. For
example, with skip_covered, a file that became 100% covered had its page
deleted, but the pages next to it still linked to it. Now a page is also
rewritten when its neighbors change.
Fix: --fail-under now uses at least the decimal precision of the
threshold for both the comparison and failure message. With precision=0,
a total of 0.4 now passes --fail-under=0.3 and fails --fail-under=0.5
with the message "total of 0.4 is less than fail-under=0.5". Previously, the
comparison rounded the total to zero and the message could claim "1 is less
than 0". Closes issue 2295_.
Fix: the HTML report escaped file names twice, so a name with &, <,
or quotes in it was shown with entities like &. Now they are properly
escaped only once.
Fix: --source=/ measured no files. A file system root can't be a source
directory, so now it is an error. Closes issue 2291_.
In an abundance of caution, prevent forged SQLite journal files from deleting
files they shouldn't.
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested with statements could make a with
line look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes issue 1987_.
Fix: a comment or string that merely mentioned if True: or while True: could mark its line as a branch that is known to be partial,
so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes issue 2314_.
Fix: region detection missed functions defined in unusual places, such as else and except clauses. This is now fixed.
Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a @<line number>
suffix to the function name. Fixes issue 2335.
Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:error description <error_cant_combine> in the docs now lists common causes and how to find the
process that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect line-rate values like 8.333e-05 or 1. This is now fixed, closing issue 2293_ and issue 2294_.
Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes issue 2338_.
Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and coverage debug data replace non-printable characters in names. Printable names are
unchanged.
A file pattern (from include, omit, or a [paths] alias)
containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's dynamic_source_filename method raised an exception, lines
in that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of None was mismanaged during function calls, including
comprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing SystemError instead of the actual exception.
Performance: the text summary report (coverage report) held on to every
file's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes issue 2277_.
Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes issue 2344_.
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer TIP This summary will be updated as you push new changes.
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (9ad4bdb) to head (c84d0e9). ⚠️ Report is 1 commits behind head on master.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.16.2→7.17.1Release Notes
coveragepy/coveragepy (coverage)
v7.17.1Compare Source
Fix: a one-line class or function body immediately followed by another
statement (such as
class Foo: ...on its own line) was incorrectlyreported as a missing branch when using the sys.monitoring core. This is now
fixed, closing
issue 2167_ andissue 2337_.Fix: the HTML report only rewrites a file's page when the file or its data
has changed, but each page also links to the previous and next files. When
the set of reported files changed, unchanged pages kept their old links. For
example, with
skip_covered, a file that became 100% covered had its pagedeleted, but the pages next to it still linked to it. Now a page is also
rewritten when its neighbors change.
Fix:
--fail-undernow uses at least the decimal precision of thethreshold for both the comparison and failure message. With
precision=0,a total of 0.4 now passes
--fail-under=0.3and fails--fail-under=0.5with the message "total of 0.4 is less than fail-under=0.5". Previously, the
comparison rounded the total to zero and the message could claim "1 is less
than 0". Closes
issue 2295_.Fix: the HTML report escaped file names twice, so a name with
&,<,or quotes in it was shown with entities like
&. Now they are properlyescaped only once.
Fix:
--source=/measured no files. A file system root can't be a sourcedirectory, so now it is an error. Closes
issue 2291_.In an abundance of caution, prevent forged SQLite journal files from deleting
files they shouldn't.
.. _issue 2167: #2167
.. _issue 2291: #2291
.. _issue 2295: #2295
.. _issue 2337: #2337
.. _changes_7-17-0:
v7.17.0Compare Source
Dropped support for Python 3.10.
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested
withstatements could make awithline look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes
issue 1987_.Fix: a comment or string that merely mentioned
if True:orwhile True:could mark its line as a branch that is known to be partial,so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes
issue 2314_.Fix: region detection missed functions defined in unusual places, such as
elseandexceptclauses. This is now fixed.Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a
@<line number>suffix to the function name. Fixes
issue 2335.Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:
error description <error_cant_combine>in the docs now lists common causes and how to find theprocess that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect
line-ratevalues like8.333e-05or1. This is now fixed, closingissue 2293_ andissue 2294_.Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes
issue 2338_.Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and
coverage debug datareplace non-printable characters in names. Printable names areunchanged.
A file pattern (from
include,omit, or a[paths]alias)containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's
dynamic_source_filenamemethod raised an exception, linesin that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of
Nonewas mismanaged during function calls, includingcomprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing
SystemErrorinstead of the actual exception.Performance: the text summary report (
coverage report) held on to everyfile's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes
issue 2277_.Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes
issue 2344_... _issue 1987: #1987
.. _issue 2277: #2277
.. _issue 2293: #2293
.. _issue 2294: #2294
.. _issue 2314: #2314
.. _issue 2335: #2335
.. _issue 2338: #2338
.. _issue 2344: #2344
.. _changes_7-16-2:
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.