Example of using assertRaises as a context manager in the unittest documentation.

This commit is contained in:
Michael Foord 2010-02-05 21:07:38 +00:00
parent 1c43001cf3
commit 1f3fa8ae68
1 changed files with 8 additions and 2 deletions

View File

@ -895,12 +895,18 @@ Test cases
If *callable* is omitted or None, returns a context manager so that the
code under test can be written inline rather than as a function::
with self.failUnlessRaises(some_error_class):
with self.assertRaises(SomeException):
do_something()
The context manager will store the caught exception object in its
:attr:`exc_value` attribute. This can be useful if the intention
is to perform additional checks on the exception raised.
is to perform additional checks on the exception raised::
with self.assertRaises(SomeException) as cm:
do_something()
the_exception = cm.exc_value
self.assertEquals(the_exception.error_code, 3)
.. versionchanged:: 2.7
Added the ability to use :meth:`assertRaises` as a context manager.