Пример #1
0
 def test_ping_pong_monitor(self):
     value = yield 3
     self.assertEqual(value, 3)
     try:
         future = Future()
         future.set_exception(ValueError('test'))
         yield future
     except ValueError:
         pass
     pong = yield send('monitor', 'ping')
     self.assertEqual(pong, 'pong')
Пример #2
0
def check_twisted(deferred, loop):
    """Binding for twisted.

    Added to pulsar asynchronous engine via the :func:`.add_async_binding`
    function.
    """
    if isinstance(deferred, Deferred):
        future = Future(loop=loop)

        deferred.addCallbacks(future.set_result, lambda failure: future.set_exception(failure.value))

        return future
Пример #3
0
 def _(*args, **kwargs):
     res = callable(*args, **kwargs)
     if isinstance(res, types.GeneratorType):
         res = _inlineCallbacks(None, res, Deferred())
     if isinstance(res, Deferred):
         future = Future()
         res.addCallbacks(
             future.set_result,
             lambda failure: future.set_exception(failure.value))
         future._deferred = res
         return future
     else:
         raise TypeError(
             "Callable %r should return a generator or a twisted Deferred"
             % callable)
Пример #4
0
 def _(*args, **kwargs):
     res = callable(*args, **kwargs)
     if isinstance(res, types.GeneratorType):
         res = _inlineCallbacks(None, res, Deferred())
     if isinstance(res, Deferred):
         future = Future()
         res.addCallbacks(
             future.set_result,
             lambda failure: future.set_exception(failure.value))
         future._deferred = res
         return future
     else:
         raise TypeError(
             "Callable %r should return a generator or a twisted Deferred" %
             callable)