summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
authorNed Batchelder <nedbat@gmail.com>2016-12-24 17:05:29 -0500
committerNed Batchelder <nedbat@gmail.com>2016-12-24 17:05:29 -0500
commit5b71841fe7b172115051357d9d237ab8d523c593 (patch)
tree8602e1e7d7876996a41bff93adcdc22dc2444dac /coverage
parenta020b6d03226f3c1bf2f6e92ce4ae8999b9187ea (diff)
parentc6a957e0e0ae7bdfe8f5425182188799918dd88a (diff)
downloadpython-coveragepy-5b71841fe7b172115051357d9d237ab8d523c593.tar.gz
Merged in dachary/coverage.py/issue-433-2 (pull request #112)
implement --skip-covered for html report #433
Diffstat (limited to 'coverage')
-rw-r--r--coverage/cmdline.py3
-rw-r--r--coverage/control.py4
-rw-r--r--coverage/html.py12
3 files changed, 14 insertions, 5 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index 8942024..0b12177 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -320,6 +320,7 @@ CMDS = {
Opts.include,
Opts.omit,
Opts.title,
+ Opts.skip_covered,
] + GLOBAL_ARGS,
usage="[options] [modules]",
description=(
@@ -510,7 +511,7 @@ class CoverageScript(object):
elif options.action == "html":
total = self.coverage.html_report(
directory=options.directory, title=options.title,
- **report_args)
+ skip_covered=options.skip_covered, **report_args)
elif options.action == "xml":
outfile = options.outfile
total = self.coverage.xml_report(outfile=outfile, **report_args)
diff --git a/coverage/control.py b/coverage/control.py
index eb0fbc4..1b7edc4 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -996,7 +996,8 @@ class Coverage(object):
reporter.report(morfs, directory=directory)
def html_report(self, morfs=None, directory=None, ignore_errors=None,
- omit=None, include=None, extra_css=None, title=None):
+ omit=None, include=None, extra_css=None, title=None,
+ skip_covered=None):
"""Generate an HTML report.
The HTML is written to `directory`. The file "index.html" is the
@@ -1018,6 +1019,7 @@ class Coverage(object):
self.config.from_args(
ignore_errors=ignore_errors, omit=omit, include=include,
html_dir=directory, extra_css=extra_css, html_title=title,
+ skip_covered=skip_covered,
)
reporter = HtmlReporter(self, self.config)
return reporter.report(morfs)
diff --git a/coverage/html.py b/coverage/html.py
index 14771dd..22783ef 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -171,6 +171,15 @@ class HtmlReporter(Reporter):
def html_file(self, fr, analysis):
"""Generate an HTML file for one source file."""
+ # Get the numbers for this file.
+ nums = analysis.numbers
+ if self.config.skip_covered:
+ # Don't report on 100% files.
+ no_missing_lines = (nums.n_missing == 0)
+ no_missing_branches = (nums.n_partial_branches == 0)
+ if no_missing_lines and no_missing_branches:
+ return
+
source = fr.source()
# Find out if the file on disk is already correct.
@@ -184,9 +193,6 @@ class HtmlReporter(Reporter):
self.status.set_file_hash(rootname, this_hash)
- # Get the numbers for this file.
- nums = analysis.numbers
-
if self.has_arcs:
missing_branch_arcs = analysis.missing_branch_arcs()
arcs_executed = analysis.arcs_executed()