Merged revisions 67979 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67979 | antoine.pitrou | 2008-12-28 15:09:36 +0100 (dim., 28 déc. 2008) | 3 lines
Issue #4444: Allow assertRaises() to be used as a context handler.
........
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index c9c17d3..9c12205 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -2284,6 +2284,43 @@
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 str(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 str(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
######################################################################