def get(url, headers=None): """ Fetch a URL and return a Deferred firing with a L{Response}. @param url: The URL to get. """ result = Deferred() if headers is None: headers = {} req = Request() def fireIfNotFired(event): "Things have either started or completed; fire." if not result.called: result.callback(Response(req)) # the "interactive" handler is where the deliverBody stuff would go req.bind("interactive", fireIfNotFired) def completeHandler(result): fireIfNotFired(result) req.bind("complete", completeHandler) req.open("GET", url, True) req.send() return result
def getOwie(): from twisted.internet import reactor d = Deferred() def CRAP(): d.errback(ZeroDivisionError('OMG')) reactor.callLater(0, CRAP) return d
def testHandledTerminalAsyncFailure(self): """ Just like testHandledTerminalFailure, only with a Deferred which fires asynchronously with an error. """ d = Deferred() deferredGeneratorResultDeferred = self._genHandledTerminalAsyncFailure( d) d.errback(TerminalException("Handled Terminal Failure")) return deferredGeneratorResultDeferred.addCallback( self.assertEqual, None)
def __init__(self, req): """ Create a L{Response} from a brython ajax L{Request}. """ self._request = req self.code = getattr(req, "status", 0) self._contentDeferred = Deferred() def callContent(xmlHttpEvent): self._contentDeferred.callback(xmlHttpEvent.text) req.bind("complete", callContent)
def test_slowly(self): """ This test should wait for 5 seconds for its Deferred to fire, then pass. """ from browser import window d = Deferred() print("one") def later(): d.callback(None) print("two") window.setTimeout(later, 5000) print("three") return d
def test_plus(self): result = [] def get_value(): return 42 def got_value(value): self.assertEqual(value, 42) return value * 2 def got_value2(value): self.assertEqual(value, 84) result.append(value) d = Deferred() d.then(get_value)\ .then(got_value)\ .then(got_value2) self.assertEqual(result, []) d.resolve() self.assertEqual(result, [84])
def getThing(): from twisted.internet import reactor d = Deferred() reactor.callLater(0, d.callback, "hi") return d
def __init__(self): self.d = Deferred()