def test_raisesAfterCancelAndErrback(self):
"""
A L{defer.Deferred} without a canceller, when cancelled must allow
a single extra call to errback, and raise
L{defer.AlreadyCalledError} if callbacked or errbacked thereafter.
"""
d = defer.Deferred()
d.addCallbacks(self._callback, self._errback)
d.cancel()
# A single extra errback should be swallowed.
d.errback(Exception())
# But a second call to callback or errback is not.
self.assertRaises(defer.AlreadyCalledError, d.callback, None)
self.assertRaises(defer.AlreadyCalledError, d.errback, Exception())
评论列表
文章目录