Source code for txrwlock.txtestcase

# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from twisted.internet import defer
from twisted.trial.unittest import TestCase

__all__ = ['TxTestCase']


[docs]class TxTestCase(TestCase): ''' Unit test helper class for Twisted. Provides useful methods to test exception cases, such as `assertRaisesWithMessage` and `assertInlineCallbacksRaisesWithMessage` in addition to `twisted.trial.unittest.TestCase`. ''' def __assertExceptionMessageIs(self, err, expectedMessage): if hasattr(err, "message"): self.assertSubstring(expectedMessage, err.message) else: self.assertSubstring(expectedMessage, str(err))
[docs] def assertRaisesWithMessage(self, exceptionClass, expectedMessage, func, *args, **kw): ''' Check if a given function call (synchronous or deferred) raised with a given message. Note: You cannot use an inlineCallbacks as func. Please use assertInlineCallbacksRaisesWithMessage. ''' try: defer.maybeDeferred(func(*args, **kw)) except exceptionClass as err: self.__assertExceptionMessageIs(err, expectedMessage) return raise Exception("{0} not raised".format(exceptionClass, ))
@defer.inlineCallbacks
[docs] def assertInlineCbRaisesWithMsg(self, exceptionClass, expectedMessage, inlineCallbacksFunc, *args, **kw): ''' Assert a given inlineCallbacks decorated method raises with a given message. This replaces assertRaisesWithMessage for inlineCallbacks. Note: this method is an inlineCallbacks and need to be yielded. ''' try: yield inlineCallbacksFunc(*args, **kw) except exceptionClass as err: self.__assertExceptionMessageIs(err, expectedMessage) return raise Exception("{0} not raised".format(exceptionClass, ))
@defer.inlineCallbacks
[docs] def assertInlineCbRaises(self, exceptionClass, inlineCallbacksFunc, *args, **kw): ''' Assert a given inlineCallbacks decorated method raises. This replaces assertRaisesWithMessage for inlineCallbacks. Note: this method is an inlineCallbacks and need to be yielded. ''' try: yield inlineCallbacksFunc(*args, **kw) except exceptionClass: return raise Exception("{0} not raised".format(exceptionClass))