def test1(self): t = Target() d = defer.Deferred() p = Promise(d) p.one(12) self.failUnlessEqual(t.calls, []) d.callback(t) self.failUnlessEqual(t.calls, [("one", 12)])
def test2(self): t = Target() t.d = defer.Deferred() d = defer.Deferred() p = Promise(d) p1 = p.one(12) p.two(b=4, a=7, c=92) p3 = p.three(4, 5, 6) self.failUnlessEqual(t.calls, []) results0a = [] d0a = when(p) d0a.addCallback(self._test2_0a, results0a) self.failUnlessEqual(results0a, []) d.callback(t) self.failUnlessEqual(t.calls, [("one", 12), ("two", 7, 4, {'c':92}), ("three", 4, (5,6)), ]) self.failUnlessEqual(results0a, [t]) results0b = [] d0b = when(p) d0b.addCallback(self._test2_0b, t, results0b) self.failUnlessEqual(results0b, [t]) d1 = when(p1) d1.addCallback(self._test2_1) d3 = when(p3) d3.addCallback(self._test2_3) reactor.callLater(0, t.d.callback, 35) return defer.DeferredList([d0a, d0b, d1, d3])
def test2(self): t = Target() t.d = defer.Deferred() d = defer.Deferred() p = Promise(d) p1 = p.one(12) p.two(b=4, a=7, c=92) p3 = p.three(4, 5, 6) self.failUnlessEqual(t.calls, []) results0a = [] d0a = when(p) d0a.addCallback(self._test2_0a, results0a) # the promise is not yet resolved, so this should not fire yet self.failUnlessEqual(results0a, []) d.callback(t) self.failUnlessEqual(t.calls, [ ("one", 12), ("two", 7, 4, { 'c': 92 }), ("three", 4, (5, 6)), ]) self.failUnlessEqual(results0a, [t]) results0b = [] d0b = when(p) d0b.addCallback(self._test2_0b, t, results0b) # because the promise has already been fulfilled, this should fire # right away self.failUnlessEqual(results0b, [t]) d1 = when(p1) d1.addCallback(self._test2_1) # p3 shouldn't fire until t.d is fired d3 = when(p3) d3.addCallback(self._test2_3) reactor.callLater(0, t.d.callback, 35) return defer.DeferredList([d0a, d0b, d1, d3])
def test2(self): t = Target() t.d = defer.Deferred() d = defer.Deferred() p = Promise(d) p1 = p.one(12) p.two(b=4, a=7, c=92) p3 = p.three(4, 5, 6) self.failUnlessEqual(t.calls, []) results0a = [] d0a = when(p) d0a.addCallback(self._test2_0a, results0a) # the promise is not yet resolved, so this should not fire yet self.failUnlessEqual(results0a, []) d.callback(t) self.failUnlessEqual(t.calls, [("one", 12), ("two", 7, 4, {'c':92}), ("three", 4, (5,6)), ]) self.failUnlessEqual(results0a, [t]) results0b = [] d0b = when(p) d0b.addCallback(self._test2_0b, t, results0b) # because the promise has already been fulfilled, this should fire # right away self.failUnlessEqual(results0b, [t]) d1 = when(p1) d1.addCallback(self._test2_1) # p3 shouldn't fire until t.d is fired d3 = when(p3) d3.addCallback(self._test2_3) reactor.callLater(0, t.d.callback, 35) return defer.DeferredList([d0a, d0b, d1, d3])