summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-08-22 23:18:14 -0400
committerNed Batchelder <ned@nedbatchelder.com>2010-08-22 23:18:14 -0400
commit94bf5f731aa8addcedb162525e96c4e1bd2ebfdd (patch)
tree29eac92761293f63b4a5e27c91fcdbd3a4ca2113 /coverage
parent3d4c985b248793c600e391fcbec0f835ca5e1e9d (diff)
downloadpython-coveragepy-git-94bf5f731aa8addcedb162525e96c4e1bd2ebfdd.tar.gz
Unify formatting of coverage percentages, and don't show zero or 100 as a result of rounding. Fixes #41 and #70.
Diffstat (limited to 'coverage')
-rw-r--r--coverage/html.py4
-rw-r--r--coverage/htmlfiles/index.html6
-rw-r--r--coverage/htmlfiles/pyfile.html4
-rw-r--r--coverage/results.py17
-rw-r--r--coverage/summary.py6
5 files changed, 25 insertions, 12 deletions
diff --git a/coverage/html.py b/coverage/html.py
index fc6d8016..9ca4dea0 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -174,10 +174,6 @@ def escape(t):
.replace(" ", "&nbsp; ")
)
-def format_pct(p):
- """Format `p` as a percentage value for the HTML reports."""
- return "%.0f" % p
-
def spaceless(html):
"""Squeeze out some annoying extra space from an HTML string.
diff --git a/coverage/htmlfiles/index.html b/coverage/htmlfiles/index.html
index c1ef8ad7..bec2584f 100644
--- a/coverage/htmlfiles/index.html
+++ b/coverage/htmlfiles/index.html
@@ -16,7 +16,7 @@
<div id='header'>
<div class='content'>
<h1>Coverage report:
- <span class='pc_cov'>{{totals.pc_covered|format_pct}}%</span>
+ <span class='pc_cov'>{{totals.pc_covered_str}}%</span>
</h1>
</div>
</div>
@@ -48,7 +48,7 @@
<td>{{totals.n_branches}}</td>
<td>{{totals.n_missing_branches}}</td>
{% endif %}
- <td class='right'>{{totals.pc_covered|format_pct}}%</td>
+ <td class='right'>{{totals.pc_covered_str}}%</td>
</tr>
</tfoot>
<tbody>
@@ -62,7 +62,7 @@
<td>{{file.nums.n_branches}}</td>
<td>{{file.nums.n_missing_branches}}</td>
{% endif %}
- <td class='right'>{{file.nums.pc_covered|format_pct}}%</td>
+ <td class='right'>{{file.nums.pc_covered_str}}%</td>
</tr>
{% endfor %}
</tbody>
diff --git a/coverage/htmlfiles/pyfile.html b/coverage/htmlfiles/pyfile.html
index 035691c8..05b2b464 100644
--- a/coverage/htmlfiles/pyfile.html
+++ b/coverage/htmlfiles/pyfile.html
@@ -5,7 +5,7 @@
{# IE8 rounds line-height incorrectly, and adding this emulateIE7 line makes it right! #}
{# http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/7684445e-f080-4d8f-8529-132763348e21 #}
<meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
- <title>Coverage for {{cu.name|escape}}: {{nums.pc_covered|format_pct}}%</title>
+ <title>Coverage for {{cu.name|escape}}: {{nums.pc_covered_str}}%</title>
<link rel='stylesheet' href='style.css' type='text/css'>
<script type='text/javascript' src='jquery-1.3.2.min.js'></script>
<script type='text/javascript' src='coverage_html.js'></script>
@@ -18,7 +18,7 @@
<div id='header'>
<div class='content'>
<h1>Coverage for <b>{{cu.name|escape}}</b> :
- <span class='pc_cov'>{{nums.pc_covered|format_pct}}%</span>
+ <span class='pc_cov'>{{nums.pc_covered_str}}%</span>
</h1>
<h2 class='stats'>
{{nums.n_statements}} statements
diff --git a/coverage/results.py b/coverage/results.py
index e80ec0a4..a3bdec15 100644
--- a/coverage/results.py
+++ b/coverage/results.py
@@ -157,6 +157,23 @@ class Numbers(object):
return pc_cov
pc_covered = property(_get_pc_covered)
+ def _get_pc_covered_str(self):
+ """Returns the percent covered, as a string, without a percent sign.
+
+ The important thing here is that "0" only be returned when it's truly
+ zero, and "100" only be returned when it's truly 100.
+
+ """
+ pc = self.pc_covered
+ if 0 < pc < 1:
+ pc = 1.0
+ elif 99 < pc < 100:
+ pc = 99.0
+ else:
+ pc = round(pc)
+ return "%.0f" % pc
+ pc_covered_str = property(_get_pc_covered_str)
+
def __add__(self, other):
nums = Numbers()
nums.n_files = self.n_files + other.n_files
diff --git a/coverage/summary.py b/coverage/summary.py
index 37039bab..53c844d1 100644
--- a/coverage/summary.py
+++ b/coverage/summary.py
@@ -32,7 +32,7 @@ class SummaryReporter(Reporter):
header += " Branch BrPart"
fmt_coverage += " %6d %6d"
header += " Cover"
- fmt_coverage += " %5d%%"
+ fmt_coverage += " %5s%%"
if self.show_missing:
header += " Missing"
fmt_coverage += " %s"
@@ -56,7 +56,7 @@ class SummaryReporter(Reporter):
args = (cu.name, nums.n_statements, nums.n_missing)
if self.branches:
args += (nums.n_branches, nums.n_missing_branches)
- args += (nums.pc_covered,)
+ args += (nums.pc_covered_str,)
if self.show_missing:
args += (analysis.missing_formatted(),)
outfile.write(fmt_coverage % args)
@@ -73,7 +73,7 @@ class SummaryReporter(Reporter):
args = ("TOTAL", total.n_statements, total.n_missing)
if self.branches:
args += (total.n_branches, total.n_missing_branches)
- args += (total.pc_covered,)
+ args += (total.pc_covered_str,)
if self.show_missing:
args += ("",)
outfile.write(fmt_coverage % args)