Пример #1
0
 def __init__(self, handler, ack=True, errorDestination=None, onMessageFailed=None):
     if not callable(handler):
         raise ValueError('Handler is not callable: %s' % handler)
     self._handler = handler
     self._ack = ack
     self._errorDestination = errorDestination
     self._onMessageFailed = onMessageFailed or sendToErrorDestination
     self._headers = None
     self._messages = InFlightOperations('Handler for message')
     self.log = logging.getLogger(LOG_CATEGORY)
Пример #2
0
 def test_timeout(self):
     op = InFlightOperations('test')
     with op(None) as w:
         try:
             yield w.wait(timeout=0, fail=RuntimeError('hi'))
         except RuntimeError as e:
             self.assertEquals(str(e), 'hi')
         else:
             raise
         self.assertEquals(list(op), [None])
     self.assertEquals(list(op), [])
Пример #3
0
 def test_dict_interface(self):
     op = InFlightOperations('test')
     self.assertEquals(list(op), [])
     self.assertRaises(KeyError, op.__getitem__, 1)
     self.assertRaises(KeyError, lambda: op[1])
     self.assertRaises(KeyError, op.pop, 1)
     self.assertIdentical(op.get(1), None)
     self.assertIdentical(op.get(1, 2), 2)
     op[1] = w = defer.Deferred()
     self.assertEquals(list(op), [1])
     self.assertIdentical(op[1], w)
     self.assertIdentical(op.get(1), w)
     self.assertRaises(KeyError, op.__setitem__, 1, defer.Deferred())
     self.assertIdentical(op.pop(1), w)
     self.assertRaises(KeyError, op.pop, 1)
     op[1] = w
     self.assertEquals(op.popitem(), (1, w))
     self.assertEquals(list(op), [])
     self.assertIdentical(op.setdefault(1, w), w)
     self.assertIdentical(op.setdefault(1, w), w)
Пример #4
0
 def __init__(self, timeout=None):
     self._timeout = timeout
     self._receipts = InFlightOperations('Waiting for receipt')
     self.log = logging.getLogger(LOG_CATEGORY)
Пример #5
0
    def test_context_single(self):
        op = InFlightOperations('test')
        with op(1) as w:
            self.assertEquals(list(op), [1])
            self.assertIsInstance(w, defer.Deferred)
            self.assertIdentical(w, op[1])
            self.assertIdentical(op.get(1), op[1])
        self.assertEquals(list(op), [])

        with op(key=2, log=logging.getLogger(LOG_CATEGORY)):
            self.assertEquals(list(op), [2])
            self.assertIsInstance(op.get(2), defer.Deferred)
            self.assertIdentical(op.get(2), op[2])
        self.assertEquals(list(op), [])

        try:
            with op(None, logging.getLogger(LOG_CATEGORY)) as w:
                reactor.callLater(0, w.cancel)  # @UndefinedVariable
                yield w.wait(timeout=None, fail=None)
        except CancelledError:
            pass
        else:
            raise
        self.assertEquals(list(op), [])

        try:
            with op(None, logging.getLogger(LOG_CATEGORY)) as w:
                reactor.callLater(
                    0, w.errback,
                    StompCancelledError('4711'))  # @UndefinedVariable
                yield w.wait()
        except StompCancelledError as e:
            self.assertEquals(str(e), '4711')
        else:
            raise
        self.assertEquals(list(op), [])

        with op(None, logging.getLogger(LOG_CATEGORY)) as w:
            reactor.callLater(0, w.callback, 4711)  # @UndefinedVariable
            result = yield w.wait()
            self.assertEquals(result, 4711)
        self.assertEquals(list(op), [])

        try:
            with op(None) as w:
                raise RuntimeError('hi')
        except RuntimeError:
            pass
        self.assertEquals(list(op), [])
        try:
            yield w
        except RuntimeError as e:
            self.assertEquals(str(e), 'hi')
        else:
            raise

        try:
            with op(None) as w:
                d = w.wait()
                raise RuntimeError('hi')
        except RuntimeError:
            pass
        self.assertEquals(list(op), [])
        try:
            yield d
        except RuntimeError as e:
            self.assertEquals(str(e), 'hi')
        else:
            pass