summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-10-24 20:30:15 -0400
committerNed Batchelder <ned@nedbatchelder.com>2009-10-24 20:30:15 -0400
commit8a2daa7d674a52f20a911b3354faeb3ed1aa2ee7 (patch)
treee3b0ac7639fcb90e1be0ad06995c8565ef267f2a
parentf908d802dba1fa1df26d303a7d0cec080a9f494f (diff)
downloadpython-coveragepy-8a2daa7d674a52f20a911b3354faeb3ed1aa2ee7.tar.gz
Commonalize the computation of total coverage percentage for a file.
-rw-r--r--coverage/control.py11
-rw-r--r--coverage/html.py7
-rw-r--r--coverage/summary.py5
3 files changed, 14 insertions, 9 deletions
diff --git a/coverage/control.py b/coverage/control.py
index d406e80..82b9e98 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -374,6 +374,17 @@ class Analysis(object):
"""
return format_lines(self.statements, self.missing)
+ def percent_covered(self):
+ """Returns a single percentage value for coverage."""
+ n_stm = len(self.statements)
+ n_mis = len(self.missing)
+ n_run = n_stm - n_mis
+ if n_stm > 0:
+ pc_cov = 100.0 * n_run / n_stm
+ else:
+ pc_cov = 100.0
+ return pc_cov
+
def arc_possibilities(self):
"""Returns a sorted list of the arcs in the code."""
return self.parser.arcs()
diff --git a/coverage/html.py b/coverage/html.py
index 9a68b2c..99b291b 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -92,11 +92,8 @@ class HtmlReporter(Reporter):
n_exc = len(analysis.excluded)
n_mis = len(analysis.missing)
n_run = n_stm - n_mis
- if n_stm > 0:
- pc_cov = 100.0 * n_run / n_stm
- else:
- pc_cov = 100.0
-
+ pc_cov = analysis.percent_covered()
+
# These classes determine which lines are highlighted by default.
c_run = " run hide"
c_exc = " exc"
diff --git a/coverage/summary.py b/coverage/summary.py
index 989256f..2a693b8 100644
--- a/coverage/summary.py
+++ b/coverage/summary.py
@@ -44,10 +44,7 @@ class SummaryReporter(Reporter):
analysis = self.coverage._analyze(cu)
n = len(analysis.statements)
m = n - len(analysis.missing)
- if n > 0:
- pc = 100.0 * m / n
- else:
- pc = 100.0
+ pc = analysis.percent_covered()
args = (cu.name, n, m, pc)
if self.show_missing:
args = args + (analysis.missing_formatted(),)