summaryrefslogtreecommitdiff
path: root/mocker.py
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2010-06-20 19:49:46 -0300
committerGustavo Niemeyer <gustavo@niemeyer.net>2010-06-20 19:49:46 -0300
commit89bcdecfe4e13112a793afc261274bac375c8638 (patch)
tree4f09546a877eab661b30d092082a4b7efc12942f /mocker.py
parent3a4c487d0d08f51dca83e31f35aae5ecb3affb82 (diff)
parenta94098f9400c9b67b5d281dc90bdc51569a7a79a (diff)
downloadmocker-89bcdecfe4e13112a793afc261274bac375c8638.tar.gz
MockerTestCase.assertRaises() will now return the exception raised,
allowing further inspection of the raised exception (implemented by Thomas Hervé) (#299930).
Diffstat (limited to 'mocker.py')
-rw-r--r--mocker.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mocker.py b/mocker.py
index ae7970c..4e6cdd5 100644
--- a/mocker.py
+++ b/mocker.py
@@ -347,6 +347,26 @@ class MockerTestCase(unittest.TestCase):
(first.__name__, name, first_formatted,
second.__name__, name, second_formatted))
+ def failUnlessRaises(self, excClass, callableObj, *args, **kwargs):
+ """
+ Fail unless an exception of class excClass is thrown by callableObj
+ when invoked with arguments args and keyword arguments kwargs. If a
+ different type of exception is thrown, it will not be caught, and the
+ test case will be deemed to have suffered an error, exactly as for an
+ unexpected exception. It returns the exception instance if it matches
+ the given exception class.
+ """
+ try:
+ result = callableObj(*args, **kwargs)
+ except excClass, e:
+ return e
+ else:
+ excName = excClass
+ if hasattr(excClass, "__name__"):
+ excName = excClass.__name__
+ raise self.failureException(
+ "%s not raised (%r returned)" % (excName, result))
+
assertIs = failUnlessIs
assertIsNot = failIfIs
@@ -359,6 +379,7 @@ class MockerTestCase(unittest.TestCase):
assertApproximates = failUnlessApproximates
assertNotApproximates = failIfApproximates
assertMethodsMatch = failUnlessMethodsMatch
+ assertRaises = failUnlessRaises
# The following are missing in Python < 2.4.
assertTrue = unittest.TestCase.failUnless