summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2009-09-13 16:40:02 (GMT)
committerMichael Foord <fuzzyman@voidspace.org.uk>2009-09-13 16:40:02 (GMT)
commitc3f79373e89cfe926b6e1f9e2f73dada1cbfff8e (patch)
tree4a11186cdbaef8d375972f162e32bcd2169a73f8 /Lib
parent60931a5a580321b4b225bec9e133ed3998eb7d1a (diff)
downloadcpython-c3f79373e89cfe926b6e1f9e2f73dada1cbfff8e.zip
cpython-c3f79373e89cfe926b6e1f9e2f73dada1cbfff8e.tar.gz
cpython-c3f79373e89cfe926b6e1f9e2f73dada1cbfff8e.tar.bz2
Objects that compare equal automatically pass or fail assertAlmostEqual and assertNotAlmostEqual tests on unittest.TestCase. Issue 6567.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_unittest.py5
-rw-r--r--Lib/unittest/case.py10
2 files changed, 14 insertions, 1 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index 5c3921d..2fab7de 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -2989,6 +2989,11 @@ class Test_Assertions(TestCase):
self.assertRaises(self.failureException,
self.assertNotAlmostEqual, 0, .1+.1j, places=0)
+ self.assertAlmostEqual(float('inf'), float('inf'))
+ self.assertRaises(self.failureException, self.assertNotAlmostEqual,
+ float('inf'), float('inf'))
+
+
def test_assertRaises(self):
def _raise(e):
raise e
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index d52bc8d..cac2842 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -457,7 +457,13 @@ class TestCase(object):
Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).
+
+ If the two objects compare equal then they will automatically
+ compare almost equal.
"""
+ if first == second:
+ # shortcut for ite
+ return
if round(abs(second-first), places) != 0:
standardMsg = '%r != %r within %r places' % (first, second, places)
msg = self._formatMessage(msg, standardMsg)
@@ -470,8 +476,10 @@ class TestCase(object):
Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).
+
+ Objects that are equal automatically fail.
"""
- if round(abs(second-first), places) == 0:
+ if (first == second) or round(abs(second-first), places) == 0:
standardMsg = '%r == %r within %r places' % (first, second, places)
msg = self._formatMessage(msg, standardMsg)
raise self.failureException(msg)