mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-23 23:02:25 +00:00
Get rid of second, less lenient variant of ShouldFailMixin.
This commit is contained in:
parent
c3494f1356
commit
d195ae4323
@ -79,6 +79,28 @@ class ShouldFailMixin(object):
|
||||
|
||||
def shouldFail(self, expected_failure, which, substring,
|
||||
callable, *args, **kwargs):
|
||||
"""Assert that a function call raises some exception. This is a
|
||||
Deferred-friendly version of TestCase.assertRaises() .
|
||||
|
||||
Suppose you want to verify the following function:
|
||||
|
||||
def broken(a, b, c):
|
||||
if a < 0:
|
||||
raise TypeError('a must not be negative')
|
||||
return defer.succeed(b+c)
|
||||
|
||||
You can use:
|
||||
d = self.shouldFail(TypeError, 'test name',
|
||||
'a must not be negative',
|
||||
broken, -4, 5, c=12)
|
||||
in your test method. The 'test name' string will be included in the
|
||||
error message, if any, because Deferred chains frequently make it
|
||||
difficult to tell which assertion was tripped.
|
||||
|
||||
The substring= argument, if not None, must appear in the 'repr'
|
||||
of the message wrapped by this Failure, or the test will fail.
|
||||
"""
|
||||
|
||||
assert substring is None or isinstance(substring, (bytes, unicode))
|
||||
d = defer.maybeDeferred(callable, *args, **kwargs)
|
||||
def done(res):
|
||||
@ -143,44 +165,3 @@ class LoggingServiceParent(service.MultiService):
|
||||
def log(self, *args, **kwargs):
|
||||
return log.msg(*args, **kwargs)
|
||||
|
||||
|
||||
class ShouldFailMixin(object):
|
||||
def shouldFail(self, expected_failure, which, substring,
|
||||
callable, *args, **kwargs):
|
||||
"""Assert that a function call raises some exception. This is a
|
||||
Deferred-friendly version of TestCase.assertRaises() .
|
||||
|
||||
Suppose you want to verify the following function:
|
||||
|
||||
def broken(a, b, c):
|
||||
if a < 0:
|
||||
raise TypeError('a must not be negative')
|
||||
return defer.succeed(b+c)
|
||||
|
||||
You can use:
|
||||
d = self.shouldFail(TypeError, 'test name',
|
||||
'a must not be negative',
|
||||
broken, -4, 5, c=12)
|
||||
in your test method. The 'test name' string will be included in the
|
||||
error message, if any, because Deferred chains frequently make it
|
||||
difficult to tell which assertion was tripped.
|
||||
|
||||
The substring= argument, if not None, must appear in the 'repr'
|
||||
of the message wrapped by this Failure, or the test will fail.
|
||||
"""
|
||||
|
||||
assert substring is None or isinstance(substring, str)
|
||||
d = defer.maybeDeferred(callable, *args, **kwargs)
|
||||
def done(res):
|
||||
if isinstance(res, failure.Failure):
|
||||
res.trap(expected_failure)
|
||||
if substring:
|
||||
message = repr(res.value.args[0])
|
||||
self.failUnless(substring in message,
|
||||
"%s: substring '%s' not in '%s'"
|
||||
% (which, substring, message))
|
||||
else:
|
||||
self.fail("%s was supposed to raise %s, not get '%s'" %
|
||||
(which, expected_failure, res))
|
||||
d.addBoth(done)
|
||||
return d
|
||||
|
Loading…
Reference in New Issue
Block a user