summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-08-06 07:05:50 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-08-06 07:05:50 -0400
commita99b27f730a262585514cc358213aa5d4c350c11 (patch)
tree114c3fb919f932c293ed7304be68b13f1332eb78
parenta17f6eea453197dc6c013410c4df9cf9a28fec42 (diff)
downloadpython-coveragepy-git-a99b27f730a262585514cc358213aa5d4c350c11.tar.gz
feat: mention skipped file counts in the HTML report. #1163
-rw-r--r--CHANGES.rst4
-rw-r--r--coverage/html.py22
-rw-r--r--coverage/htmlfiles/index.html7
-rw-r--r--tests/test_html.py4
4 files changed, 36 insertions, 1 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 600c71f8..0fc84cb3 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -30,6 +30,9 @@ Unreleased
- The ``coverage combine`` command now prints messages indicating each data
file being combined. Fixes `issue 1105`_.
+- The HTML report now includes a sentence about skipped files due to
+ ``skip_covered`` or ``skip_empty`` settings. Fixes `issue 1163`_.
+
- Unrecognized options in the configuration file are no longer errors. They are
now warnings, to ease the use of coverage across versions. Fixes `issue
1035`_.
@@ -39,6 +42,7 @@ Unreleased
.. _issue 1035: https://github.com/nedbat/coveragepy/issues/1035
.. _issue 1105: https://github.com/nedbat/coveragepy/issues/1105
+.. _issue 1163: https://github.com/nedbat/coveragepy/issues/1163
.. _issue 1195: https://github.com/nedbat/coveragepy/issues/1195
diff --git a/coverage/html.py b/coverage/html.py
index 95e3aa44..208554c8 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -179,7 +179,9 @@ class HtmlReporter:
self.skip_covered = self.config.skip_covered
self.skip_empty = self.config.html_skip_empty
if self.skip_empty is None:
- self.skip_empty= self.config.skip_empty
+ self.skip_empty = self.config.skip_empty
+ self.skipped_covered_count = 0
+ self.skipped_empty_count = 0
title = self.config.html_title
@@ -284,12 +286,14 @@ class HtmlReporter:
if no_missing_lines and no_missing_branches:
# If there's an existing file, remove it.
file_be_gone(html_path)
+ self.skipped_covered_count += 1
return
if self.skip_empty:
# Don't report on empty files.
if nums.n_statements == 0:
file_be_gone(html_path)
+ self.skipped_empty_count += 1
return
# Find out if the file on disk is already correct.
@@ -358,9 +362,25 @@ class HtmlReporter:
"""Write the index.html file for this report."""
index_tmpl = Templite(read_data("index.html"), self.template_globals)
+ skipped_covered_msg = skipped_empty_msg = ""
+ if self.skipped_covered_count:
+ msg = "{} {} skipped due to complete coverage."
+ skipped_covered_msg = msg.format(
+ self.skipped_covered_count,
+ "file" if self.skipped_covered_count == 1 else "files",
+ )
+ if self.skipped_empty_count:
+ msg = "{} empty {} skipped."
+ skipped_empty_msg = msg.format(
+ self.skipped_empty_count,
+ "file" if self.skipped_empty_count == 1 else "files",
+ )
+
html = index_tmpl.render({
'files': self.file_summaries,
'totals': self.totals,
+ 'skipped_covered_msg': skipped_covered_msg,
+ 'skipped_empty_msg': skipped_empty_msg,
})
index_file = os.path.join(self.directory, "index.html")
diff --git a/coverage/htmlfiles/index.html b/coverage/htmlfiles/index.html
index 983db061..3654d66a 100644
--- a/coverage/htmlfiles/index.html
+++ b/coverage/htmlfiles/index.html
@@ -104,6 +104,13 @@
<p id="no_rows">
No items found using the specified filter.
</p>
+
+ {% if skipped_covered_msg %}
+ <p>{{ skipped_covered_msg }}</p>
+ {% endif %}
+ {% if skipped_empty_msg %}
+ <p>{{ skipped_empty_msg }}</p>
+ {% endif %}
</div>
<div id="footer">
diff --git a/tests/test_html.py b/tests/test_html.py
index 94ceb902..f5908d7b 100644
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -506,6 +506,8 @@ class HtmlTest(HtmlTestHelpers, CoverageTest):
self.assert_exists("htmlcov/index.html")
self.assert_doesnt_exist("htmlcov/main_file_py.html")
self.assert_exists("htmlcov/not_covered_py.html")
+ index = self.get_html_index_content()
+ assert "1 file skipped due to complete coverage." in index
def test_report_skip_covered_branches(self):
self.make_main_and_not_covered()
@@ -541,6 +543,8 @@ class HtmlTest(HtmlTestHelpers, CoverageTest):
self.assert_exists("htmlcov/index.html")
self.assert_exists("htmlcov/main_file_py.html")
self.assert_doesnt_exist("htmlcov/submodule___init___py.html")
+ index = self.get_html_index_content()
+ assert "1 empty file skipped." in index
def test_html_skip_empty(self):
self.make_init_and_main()