diff options
author | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-08-27 22:20:21 (GMT) |
---|---|---|
committer | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-08-27 22:20:21 (GMT) |
commit | e2a77980b630dfcfdd2c934534c4a8847b93b927 (patch) | |
tree | dcb801836767c29c2cc5df3b580973bfe65eb02b /Lib | |
parent | e746daa2cb65df18dc4b8af8e3de878d60eb4ced (diff) | |
download | cpython-e2a77980b630dfcfdd2c934534c4a8847b93b927.zip cpython-e2a77980b630dfcfdd2c934534c4a8847b93b927.tar.gz cpython-e2a77980b630dfcfdd2c934534c4a8847b93b927.tar.bz2 |
issue 6275
Add an "exc_value" attribute to the _AssertRaisesContext context manager in the unittest package. This allows further tests on the exception that was raised after the context manager exits.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_unittest.py | 15 | ||||
-rw-r--r-- | Lib/unittest/case.py | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index cca1836..5c3921d 100644 --- a/Lib/test/test_unittest.py +++ b/Lib/test/test_unittest.py @@ -2821,6 +2821,21 @@ test case self.assertRaisesRegexp, Exception, re.compile('^Expected$'), Stub) + def testAssertRaisesExcValue(self): + class ExceptionMock(Exception): + pass + + def Stub(foo): + raise ExceptionMock(foo) + v = "particular value" + + ctx = self.assertRaises(ExceptionMock) + with ctx: + Stub(v) + e = ctx.exc_value + self.assertTrue(isinstance(e, ExceptionMock)) + self.assertEqual(e.args[0], v) + def testSynonymAssertMethodNames(self): """Test undocumented method name synonyms. diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 6ffdacb..d52bc8d 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -104,6 +104,7 @@ class _AssertRaisesContext(object): if not issubclass(exc_type, self.expected): # let unexpected exceptions pass through return False + self.exc_value = exc_value #store for later retrieval if self.expected_regex is None: return True |