diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2010-08-22 23:18:14 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2010-08-22 23:18:14 -0400 |
commit | 94bf5f731aa8addcedb162525e96c4e1bd2ebfdd (patch) | |
tree | 29eac92761293f63b4a5e27c91fcdbd3a4ca2113 /coverage | |
parent | 3d4c985b248793c600e391fcbec0f835ca5e1e9d (diff) | |
download | python-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.py | 4 | ||||
-rw-r--r-- | coverage/htmlfiles/index.html | 6 | ||||
-rw-r--r-- | coverage/htmlfiles/pyfile.html | 4 | ||||
-rw-r--r-- | coverage/results.py | 17 | ||||
-rw-r--r-- | coverage/summary.py | 6 |
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(" ", " ") ) -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) |