diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2008-12-28 14:09:36 +0000 |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2008-12-28 14:09:36 +0000 |
commit | 697ca3d0cbd75aac21fe823fe379cf9a7edace4a (patch) | |
tree | 511bca929e5379018be9a0a4f08b928c5dec43a0 /Lib/test/test_unittest.py | |
parent | 40f982fbdfa7ae10b14f1906915cc15938f82641 (diff) | |
download | cpython-git-697ca3d0cbd75aac21fe823fe379cf9a7edace4a.tar.gz |
Issue #4444: Allow assertRaises() to be used as a context handler.
Diffstat (limited to 'Lib/test/test_unittest.py')
-rw-r--r-- | Lib/test/test_unittest.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index 5a827805b1..df656e4438 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 ###################################################################### |