diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-10-24 20:30:15 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-10-24 20:30:15 -0400 |
commit | 8a2daa7d674a52f20a911b3354faeb3ed1aa2ee7 (patch) | |
tree | e3b0ac7639fcb90e1be0ad06995c8565ef267f2a | |
parent | f908d802dba1fa1df26d303a7d0cec080a9f494f (diff) | |
download | python-coveragepy-8a2daa7d674a52f20a911b3354faeb3ed1aa2ee7.tar.gz |
Commonalize the computation of total coverage percentage for a file.
-rw-r--r-- | coverage/control.py | 11 | ||||
-rw-r--r-- | coverage/html.py | 7 | ||||
-rw-r--r-- | coverage/summary.py | 5 |
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(),) |