summaryrefslogtreecommitdiff
path: root/coverage/summary.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-11-08 13:45:20 -0500
committerNed Batchelder <ned@nedbatchelder.com>2009-11-08 13:45:20 -0500
commit5ebfcb2f451bbb4c88072e2da996cfc2729640d8 (patch)
treecf07e7d2ab11fe6252e6520944f636f1226c2ab1 /coverage/summary.py
parent965a10aaa2287ac678f0a821004ee8ceae005957 (diff)
downloadpython-coveragepy-5ebfcb2f451bbb4c88072e2da996cfc2729640d8.tar.gz
Added branch stats to results, and the summary report includes them.
Diffstat (limited to 'coverage/summary.py')
-rw-r--r--coverage/summary.py38
1 files changed, 23 insertions, 15 deletions
diff --git a/coverage/summary.py b/coverage/summary.py
index 00e4af8..e0e9eba 100644
--- a/coverage/summary.py
+++ b/coverage/summary.py
@@ -12,6 +12,7 @@ class SummaryReporter(Reporter):
def __init__(self, coverage, show_missing=True, ignore_errors=False):
super(SummaryReporter, self).__init__(coverage, ignore_errors)
self.show_missing = show_missing
+ self.branches = coverage.data.has_arcs()
def report(self, morfs, omit_prefixes=None, outfile=None):
"""Writes a report summarizing coverage statistics per module."""
@@ -22,12 +23,19 @@ class SummaryReporter(Reporter):
max_name = max([len(cu.name) for cu in self.code_units] + [5])
fmt_name = "%%- %ds " % max_name
fmt_err = "%s %s: %s\n"
- header = fmt_name % "Name" + " Stmts Exec Cover\n"
- fmt_coverage = fmt_name + "% 6d % 6d % 5d%%\n"
+ header = (fmt_name % "Name") + " Stmts Exec"
+ fmt_coverage = fmt_name + "%6d %6d"
+ if self.branches:
+ header += " Branch BrExec"
+ fmt_coverage += " %6d %6d"
+ header += " Cover"
+ fmt_coverage += " %5d%%"
if self.show_missing:
- header = header.replace("\n", " Missing\n")
- fmt_coverage = fmt_coverage.replace("\n", " %s\n")
- rule = "-" * (len(header)-1) + "\n"
+ header += " Missing"
+ fmt_coverage += " %s"
+ rule = "-" * len(header) + "\n"
+ header += "\n"
+ fmt_coverage += "\n"
if not outfile:
outfile = sys.stdout
@@ -42,12 +50,12 @@ class SummaryReporter(Reporter):
try:
analysis = self.coverage._analyze(cu)
nums = analysis.numbers
- args = (
- cu.name, nums.n_statements, nums.n_executed,
- nums.pc_covered
- )
+ args = (cu.name, nums.n_statements, nums.n_executed)
+ if self.branches:
+ args += (nums.n_branches, nums.n_executed_branches)
+ args += (nums.pc_covered,)
if self.show_missing:
- args = args + (analysis.missing_formatted(),)
+ args += (analysis.missing_formatted(),)
outfile.write(fmt_coverage % args)
total += nums
except KeyboardInterrupt: #pragma: no cover
@@ -59,10 +67,10 @@ class SummaryReporter(Reporter):
if total.n_files > 1:
outfile.write(rule)
- args = (
- "TOTAL", total.n_statements, total.n_executed,
- total.pc_covered
- )
+ args = ("TOTAL", total.n_statements, total.n_executed)
+ if self.branches:
+ args += (total.n_branches, total.n_executed_branches)
+ args += (total.pc_covered,)
if self.show_missing:
- args = args + ("",)
+ args += ("",)
outfile.write(fmt_coverage % args)