summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2008-12-28 14:09:36 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2008-12-28 14:09:36 (GMT)
commit697ca3d0cbd75aac21fe823fe379cf9a7edace4a (patch)
tree511bca929e5379018be9a0a4f08b928c5dec43a0 /Lib/test
parent40f982fbdfa7ae10b14f1906915cc15938f82641 (diff)
downloadcpython-697ca3d0cbd75aac21fe823fe379cf9a7edace4a.zip
cpython-697ca3d0cbd75aac21fe823fe379cf9a7edace4a.tar.gz
cpython-697ca3d0cbd75aac21fe823fe379cf9a7edace4a.tar.bz2
Issue #4444: Allow assertRaises() to be used as a context handler.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_unittest.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index 5a82780..df656e4 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -2284,6 +2284,43 @@ class Test_Assertions(TestCase):
self.assertRaises(AssertionError,
self.failIfAlmostEqual, 0, .1+.1j, places=0)
+ def test_assertRaises(self):
+ def _raise(e):
+ raise e
+ self.assertRaises(KeyError, _raise, KeyError)
+ self.assertRaises(KeyError, _raise, KeyError("key"))
+ try:
+ self.assertRaises(KeyError, lambda: None)
+ except AssertionError as e:
+ self.assert_("KeyError not raised" in e, str(e))
+ else:
+ self.fail("assertRaises() didn't fail")
+ try:
+ self.assertRaises(KeyError, _raise, ValueError)
+ except ValueError:
+ pass
+ else:
+ self.fail("assertRaises() didn't let exception pass through")
+ with self.assertRaises(KeyError):
+ raise KeyError
+ with self.assertRaises(KeyError):
+ raise KeyError("key")
+ try:
+ with self.assertRaises(KeyError):
+ pass
+ except AssertionError as e:
+ self.assert_("KeyError not raised" in e, str(e))
+ else:
+ self.fail("assertRaises() didn't fail")
+ try:
+ with self.assertRaises(KeyError):
+ raise ValueError
+ except ValueError:
+ pass
+ else:
+ self.fail("assertRaises() didn't let exception pass through")
+
+
######################################################################
## Main
######################################################################