示例#1
0
    def test_simple_wait(self):
        a = Deferred()
        a.addCallback(self.calls.append)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("w", self.calls)
        a.callback("a")
        self.assertIn("w", self.calls)
示例#2
0
文件: test_util.py 项目: lu562/viff
    def test_simple_wait(self):
        a = Deferred()
        a.addCallback(self.calls.append)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("w", self.calls)
        a.callback("a")
        self.assertIn("w", self.calls)
示例#3
0
文件: test_util.py 项目: lu562/viff
    def test_tuple_wait(self):
        a = Deferred()
        b = Deferred()

        a.addCallback(self.calls.append)
        b.addCallback(self.calls.append)

        w = deep_wait((a, 123, b))
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("w", self.calls)
        a.callback("a")
        self.assertNotIn("w", self.calls)
        b.callback("b")
        self.assertIn("w", self.calls)
示例#4
0
    def test_tuple_wait(self):
        a = Deferred()
        b = Deferred()

        a.addCallback(self.calls.append)
        b.addCallback(self.calls.append)

        w = deep_wait((a, 123, b))
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("w", self.calls)
        a.callback("a")
        self.assertNotIn("w", self.calls)
        b.callback("b")
        self.assertIn("w", self.calls)
示例#5
0
文件: test_util.py 项目: lu562/viff
    def test_mixed_deep_wait(self):
        a = Deferred()
        b = Deferred()

        def return_mix(_):
            """Callbacks which return a Deferred and an integer."""
            self.calls.append("return_mix")
            return (b, 42)

        a.addCallback(self.calls.append)
        a.addCallback(return_mix)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("a", self.calls)
        a.callback("a")
        self.assertIn("a", self.calls)
        self.assertIn("return_mix", self.calls)
        self.assertNotIn("w", self.calls)

        b.callback("b")
        self.assertIn("w", self.calls)
示例#6
0
    def test_mixed_deep_wait(self):
        a = Deferred()
        b = Deferred()

        def return_mix(_):
            """Callbacks which return a Deferred and an integer."""
            self.calls.append("return_mix")
            return (b, 42)

        a.addCallback(self.calls.append)
        a.addCallback(return_mix)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("a", self.calls)
        a.callback("a")
        self.assertIn("a", self.calls)
        self.assertIn("return_mix", self.calls)
        self.assertNotIn("w", self.calls)

        b.callback("b")
        self.assertIn("w", self.calls)
示例#7
0
文件: test_util.py 项目: lu562/viff
    def test_complex_deep_wait(self):
        a = Deferred()
        b = Deferred()
        c = Deferred()
        d = Deferred()

        a.addCallback(self.calls.append)
        b.addCallback(self.calls.append)
        c.addCallback(self.calls.append)
        d.addCallback(self.calls.append)

        def return_b(_):
            self.calls.append("return_b")
            return (b, 42)

        def return_c_d(_):
            self.calls.append("return_c")
            return [(1, 2), "testing", [c, True], (d, 10)]

        a.addCallback(return_b)
        b.addCallback(return_c_d)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        a.callback("a")
        self.assertNotIn("w", self.calls)

        c.callback("c")
        self.assertNotIn("w", self.calls)

        b.callback("b")
        self.assertNotIn("w", self.calls)

        d.callback("d")
        self.assertIn("w", self.calls)
示例#8
0
文件: test_util.py 项目: lu562/viff
    def test_deep_wait(self):
        a = Deferred()
        b = Deferred()

        def return_b(_):
            """Callbacks which return a Deferred."""
            self.calls.append("return_b")
            return b

        a.addCallback(self.calls.append)
        a.addCallback(return_b)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("a", self.calls)
        a.callback("a")
        self.assertIn("a", self.calls)
        self.assertIn("return_b", self.calls)
        self.assertNotIn("w", self.calls)
        self.assertNotIn("b", self.calls)

        b.callback("b")
        self.assertIn("w", self.calls)
示例#9
0
    def test_complex_deep_wait(self):
        a = Deferred()
        b = Deferred()
        c = Deferred()
        d = Deferred()

        a.addCallback(self.calls.append)
        b.addCallback(self.calls.append)
        c.addCallback(self.calls.append)
        d.addCallback(self.calls.append)

        def return_b(_):
            self.calls.append("return_b")
            return (b, 42)

        def return_c_d(_):
            self.calls.append("return_c")
            return [(1, 2), "testing", [c, True], (d, 10)]

        a.addCallback(return_b)
        b.addCallback(return_c_d)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        a.callback("a")
        self.assertNotIn("w", self.calls)

        c.callback("c")
        self.assertNotIn("w", self.calls)

        b.callback("b")
        self.assertNotIn("w", self.calls)

        d.callback("d")
        self.assertIn("w", self.calls)
示例#10
0
    def test_deep_wait(self):
        a = Deferred()
        b = Deferred()

        def return_b(_):
            """Callbacks which return a Deferred."""
            self.calls.append("return_b")
            return b

        a.addCallback(self.calls.append)
        a.addCallback(return_b)

        w = deep_wait(a)
        w.addCallback(lambda _: self.calls.append("w"))

        self.assertNotIn("a", self.calls)
        a.callback("a")
        self.assertIn("a", self.calls)
        self.assertIn("return_b", self.calls)
        self.assertNotIn("w", self.calls)
        self.assertNotIn("b", self.calls)

        b.callback("b")
        self.assertIn("w", self.calls)
示例#11
0
文件: test_util.py 项目: lu562/viff
 def test_trivial_wait(self):
     w = deep_wait("not a Deferred")
     w.addCallback(lambda _: self.calls.append("w"))
     self.assertIn("w", self.calls)
示例#12
0
 def test_trivial_wait(self):
     w = deep_wait("not a Deferred")
     w.addCallback(lambda _: self.calls.append("w"))
     self.assertIn("w", self.calls)