summaryrefslogtreecommitdiff
path: root/coverage/results.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-05-31 19:37:53 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-05-31 19:37:53 -0400
commit1157999dc5c6c3aa3129a7cd4bf249fe73598501 (patch)
treecba407bacb180fb8fcb46a1b5eaf7da2e0fd88fb /coverage/results.py
parent65d9e0edbca0dc893ca70fbf64969e2ddc5a3680 (diff)
downloadpython-coveragepy-git-1157999dc5c6c3aa3129a7cd4bf249fe73598501.tar.gz
fix: --fail-under=100 could report 100 is less than 100.
Use the same rounding rules for the fail-under message that are used for totals everywhere else, so that it won't say: total of 100 is less than fail-under=100
Diffstat (limited to 'coverage/results.py')
-rw-r--r--coverage/results.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/coverage/results.py b/coverage/results.py
index c60ccac2..f7331b41 100644
--- a/coverage/results.py
+++ b/coverage/results.py
@@ -219,14 +219,24 @@ class Numbers(SimpleReprMixin):
result in either "0" or "100".
"""
- pc = self.pc_covered
- if 0 < pc < self._near0:
- pc = self._near0
- elif self._near100 < pc < 100:
- pc = self._near100
+ return self.display_covered(self.pc_covered)
+
+ @classmethod
+ def display_covered(cls, pc):
+ """Return a displayable total percentage, as a string.
+
+ Note that "0" is only returned when the value is truly zero, and "100"
+ is only returned when the value is truly 100. Rounding can never
+ result in either "0" or "100".
+
+ """
+ if 0 < pc < cls._near0:
+ pc = cls._near0
+ elif cls._near100 < pc < 100:
+ pc = cls._near100
else:
- pc = round(pc, self._precision)
- return "%.*f" % (self._precision, pc)
+ pc = round(pc, cls._precision)
+ return "%.*f" % (cls._precision, pc)
@classmethod
def pc_str_width(cls):