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))