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