summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 d406e80c..82b9e987 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 9a68b2c1..99b291b4 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 989256fc..2a693b82 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(),)