示例#1
0
 def testResolveToAPromise(self):
     p1,r1 = makePromise()
     p2,r2 = makePromise()
     def _check(res):
         self.assertEqual(res, 1)
     p1._then(_check)
     r1(p2)
     def _continue(res):
         r2(1)
     flushEventualQueue().addCallback(_continue)
     return when(p1)
示例#2
0
 def testResolveToAPromise(self):
     p1,r1 = makePromise()
     p2,r2 = makePromise()
     def _check(res):
         self.failUnlessEqual(res, 1)
     p1._then(_check)
     r1(p2)
     def _continue(res):
         r2(1)
     flushEventualQueue().addCallback(_continue)
     return when(p1)
示例#3
0
 def testResolveToABrokenPromise(self):
     p1,r1 = makePromise()
     p2,r2 = makePromise()
     r1(p2)
     def _continue(res):
         r2(Failure(KaboomError("foom")))
     flushEventualQueue().addCallback(_continue)
     def _check2(res):
         self.assertTrue(isinstance(res, Failure))
         self.assertTrue(res.check(KaboomError))
     d = when(p1)
     d.addBoth(_check2)
     return d
示例#4
0
 def testResolveToABrokenPromise(self):
     p1,r1 = makePromise()
     p2,r2 = makePromise()
     r1(p2)
     def _continue(res):
         r2(Failure(KaboomError("foom")))
     flushEventualQueue().addCallback(_continue)
     def _check2(res):
         self.failUnless(isinstance(res, Failure))
         self.failUnless(res.check(KaboomError))
     d = when(p1)
     d.addBoth(_check2)
     return d
示例#5
0
    def testChained2(self):
        p1, r = makePromise()

        def _check(c, expected):
            self.failUnlessEqual(c.count, expected)

        p1.add(2).add(3)._then(_check, 6)
        r(Counter(1))
示例#6
0
 def testResolveAfter(self):
     t = Target()
     p1,r = makePromise()
     p2 = p1.one(2)
     def _check(res):
         self.failUnlessEqual(res, 3)
     p2._then(_check)
     r(t)
示例#7
0
    def testDisableDataflowStyle(self):
        p, r = makePromise()
        p._useDataflowStyle = False

        def wrong(p):
            p.one(12)

        self.failUnlessRaises(AttributeError, wrong, p)
示例#8
0
 def testChained1(self):
     p1,r = makePromise()
     p2 = p1.add(2)
     p3 = p2.add(3)
     def _check(c):
         self.assertEqual(c.count, 5)
     p3._then(_check)
     r(Counter(0))
示例#9
0
 def testChained1(self):
     p1,r = makePromise()
     p2 = p1.add(2)
     p3 = p2.add(3)
     def _check(c):
         self.failUnlessEqual(c.count, 5)
     p3._then(_check)
     r(Counter(0))
示例#10
0
 def testResolveAfter(self):
     t = Target()
     p1,r = makePromise()
     p2 = p1.one(2)
     def _check(res):
         self.assertEqual(res, 3)
     p2._then(_check)
     r(t)
示例#11
0
 def testResolveAfter(self):
     t = Target()
     p,r = makePromise()
     p = send(p).one(2)
     def _check(res):
         self.assertEqual(res, 3)
     when(p).addCallback(_check)
     r(t)
示例#12
0
 def testResolveAfter(self):
     t = Target()
     p,r = makePromise()
     p = send(p).one(2)
     def _check(res):
         self.failUnlessEqual(res, 3)
     when(p).addCallback(_check)
     r(t)
示例#13
0
 def testResolveFailure(self):
     p,r = makePromise()
     p = send(p).one(2)
     def _check(res):
         self.failUnless(isinstance(res, Failure))
         self.failUnless(res.check(KaboomError))
     when(p).addBoth(_check)
     f = Failure(KaboomError("oops"))
     r(f)
示例#14
0
 def testBasic(self):
     p,r = makePromise()
     def _check(res, *args, **kwargs):
         self.assertEqual(res, 1)
         self.assertEqual(args, ("one",))
         self.assertEqual(kwargs, {"two": 2})
     p2 = p._then(_check, "one", two=2)
     self.assertIs(p2, p)
     r(1)
示例#15
0
 def testResolveFailure(self):
     p,r = makePromise()
     p = send(p).one(2)
     def _check(res):
         self.assertTrue(isinstance(res, Failure))
         self.assertTrue(res.check(KaboomError))
     when(p).addBoth(_check)
     f = Failure(KaboomError("oops"))
     r(f)
示例#16
0
 def testBasic(self):
     p,r = makePromise()
     def _check(res, *args, **kwargs):
         self.failUnlessEqual(res, 1)
         self.failUnlessEqual(args, ("one",))
         self.failUnlessEqual(kwargs, {"two": 2})
     p2 = p._then(_check, "one", two=2)
     self.failUnlessIdentical(p2, p)
     r(1)
示例#17
0
 def testBasicFailure(self):
     p,r = makePromise()
     def _check(res, *args, **kwargs):
         self.assertTrue(isinstance(res, Failure))
         self.assertTrue(res.check(KaboomError))
         self.assertEqual(args, ("one",))
         self.assertEqual(kwargs, {"two": 2})
     p2 = p._except(_check, "one", two=2)
     self.assertIs(p2, p)
     r(Failure(KaboomError("oops")))
示例#18
0
 def testResolveFailure(self):
     p1,r = makePromise()
     p2 = p1.one(2)
     def _check(res):
         self.assertTrue(isinstance(res, Failure))
         self.assertTrue(res.check(KaboomError))
     p2._then(lambda res: self.fail("this was supposed to fail"))
     p2._except(_check)
     f = Failure(KaboomError("oops"))
     r(f)
示例#19
0
    def testResolveBefore(self):
        t = Target()
        p, r = makePromise()
        r(t)
        p = send(p).one(2)

        def _check(res):
            self.failUnlessEqual(res, 3)

        when(p).addCallback(_check)
示例#20
0
 def testResolveAfter(self):
     t = Target()
     p,r = makePromise()
     sendOnly(p).one(1)
     r(t)
     d = flushEventualQueue()
     def _check(res):
         self.assertEqual(t.calls, [("one", 1)])
     d.addCallback(_check)
     return d
示例#21
0
    def testResolveBefore(self):
        t = Target()
        p1, r = makePromise()
        r(t)
        p2 = p1.one(2)

        def _check(res):
            self.failUnlessEqual(res, 3)

        p2._then(_check)
示例#22
0
 def testResolveAfter(self):
     t = Target()
     p,r = makePromise()
     sendOnly(p).one(1)
     r(t)
     d = flushEventualQueue()
     def _check(res):
         self.failUnlessEqual(t.calls, [("one", 1)])
     d.addCallback(_check)
     return d
示例#23
0
 def testResolveFailure(self):
     p1,r = makePromise()
     p2 = p1.one(2)
     def _check(res):
         self.failUnless(isinstance(res, Failure))
         self.failUnless(res.check(KaboomError))
     p2._then(lambda res: self.fail("this was supposed to fail"))
     p2._except(_check)
     f = Failure(KaboomError("oops"))
     r(f)
示例#24
0
 def testBasicFailure(self):
     p,r = makePromise()
     def _check(res, *args, **kwargs):
         self.failUnless(isinstance(res, Failure))
         self.failUnless(res.check(KaboomError))
         self.failUnlessEqual(args, ("one",))
         self.failUnlessEqual(kwargs, {"two": 2})
     p2 = p._except(_check, "one", two=2)
     self.failUnlessIdentical(p2, p)
     r(Failure(KaboomError("oops")))
示例#25
0
    def testBasic(self):
        p, r = makePromise()

        def _check(res, *args, **kwargs):
            self.failUnlessEqual(res, 1)
            self.failUnlessEqual(args, ("one", ))
            self.failUnlessEqual(kwargs, {"two": 2})

        p2 = p._then(_check, "one", two=2)
        self.failUnlessIdentical(p2, p)
        r(1)
示例#26
0
    def testResolveBefore(self):
        t = Target()
        p, r = makePromise()
        r(t)
        sendOnly(p).one(1)
        d = flushEventualQueue()

        def _check(res):
            self.failUnlessEqual(t.calls, [("one", 1)])

        d.addCallback(_check)
        return d
示例#27
0
 def testNoMultipleResolution(self):
     p,r = makePromise()
     r(3)
     self.assertRaises(UsageError, r, 4)
示例#28
0
 def testNoMultipleResolution(self):
     p, r = makePromise()
     r(3)
     self.failUnlessRaises(UsageError, r, 4)
示例#29
0
 def testDisableDataflowStyle(self):
     p,r = makePromise()
     p._useDataflowStyle = False
     def wrong(p):
         p.one(12)
     self.failUnlessRaises(AttributeError, wrong, p)
示例#30
0
 def testChained2(self):
     p1,r = makePromise()
     def _check(c, expected):
         self.failUnlessEqual(c.count, expected)
     p1.add(2).add(3)._then(_check, 6)
     r(Counter(1))
示例#31
0
 def testNoMultipleResolution(self):
     p,r = makePromise()
     r(3)
     self.failUnlessRaises(UsageError, r, 4)