summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-12-24 06:49:42 -0500
committerNed Batchelder <ned@nedbatchelder.com>2018-12-24 06:49:42 -0500
commitc4875b6ce2265e6797705508bae09a7a74a710e4 (patch)
tree73be898d3fea23716d4843256c6792b85151e6a8
parent9f29efdf20c5dcfe49e85cc61c0839730be2462e (diff)
downloadpython-coveragepy-git-c4875b6ce2265e6797705508bae09a7a74a710e4.tar.gz
Tweaks to the fail_under limiting
-rw-r--r--CHANGES.rst5
-rw-r--r--coverage/results.py9
-rw-r--r--tests/test_results.py3
3 files changed, 11 insertions, 6 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 2a32ad5a..b00d0f2b 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -16,7 +16,10 @@ Change history for Coverage.py
Unreleased
----------
-Nothing yet.
+- ``fail_under`` values more than 100 are reported as errors. Thanks to Mike
+ Fiedler for closing `issue 746`_.
+
+.. _issue 746: https://github.com/nedbat/coveragepy/issues/746
.. _changes_50a4:
diff --git a/coverage/results.py b/coverage/results.py
index 9be16b15..ecd50ae9 100644
--- a/coverage/results.py
+++ b/coverage/results.py
@@ -7,7 +7,7 @@ import collections
from coverage.backward import iitems
from coverage.debug import SimpleReprMixin
-from coverage.misc import contract, format_lines
+from coverage.misc import contract, format_lines, CoverageException
class Analysis(object):
@@ -283,9 +283,10 @@ def should_fail_under(total, fail_under, precision):
Returns True if the total should fail.
"""
- # We can never achieve higher than 100% coverage
- if fail_under > 100.0:
- raise ValueError("`fail_under` is greater than 100. Please use 100 or lower.")
+ # We can never achieve higher than 100% coverage, or less than zero.
+ if not (0 <= fail_under <= 100.0):
+ msg = "fail_under={} is invalid. Must be between 0 and 100.".format(fail_under)
+ raise CoverageException(msg)
# Special case for fail_under=100, it must really be 100.
if fail_under == 100.0 and total != 100.0:
diff --git a/tests/test_results.py b/tests/test_results.py
index f83b73dd..ec6301db 100644
--- a/tests/test_results.py
+++ b/tests/test_results.py
@@ -5,6 +5,7 @@
import pytest
+from coverage.misc import CoverageException
from coverage.results import Numbers, should_fail_under
from tests.coveragetest import CoverageTest
@@ -108,5 +109,5 @@ def test_should_fail_under(total, fail_under, precision, result):
def test_should_fail_under_invalid_value():
- with pytest.raises(ValueError):
+ with pytest.raises(CoverageException, match=r"fail_under=101"):
should_fail_under(100.0, 101, 0)