Ejemplo n.º 1
0
    def test_handle_immediate_success(self):
        queue = libvirtworker.WorkQueue()

        def work():
            return defer.succeed(True)

        yield queue.execute(work)
Ejemplo n.º 2
0
    def test_handle_immediate_errback(self):
        queue = libvirtworker.WorkQueue()

        def work():
            return defer.fail(RuntimeError("Sad times"))

        yield self.expect_errback(queue.execute(work))
Ejemplo n.º 3
0
    def test_handle_exceptions(self):
        queue = libvirtworker.WorkQueue()

        def work():
            raise ValueError

        yield self.expect_errback(queue.execute(work))
Ejemplo n.º 4
0
    def test_work(self):
        queue = libvirtworker.WorkQueue()

        # We want these deferreds to fire in order
        flags = {1: False, 2: False, 3: False}

        # When first deferred fires, flags[2] and flags[3] should still be false
        # flags[1] shouldn't already be set, either
        @defer.inlineCallbacks
        def d1():
            yield queue.execute(self.delayed_success())
            self.assertEqual(flags[1], False)
            flags[1] = True
            self.assertEqual(flags[2], False)
            self.assertEqual(flags[3], False)

        # When second deferred fires, only flags[3] should be set
        # flags[2] should definitely be False
        @defer.inlineCallbacks
        def d2():
            yield queue.execute(self.delayed_success())
            self.assertFalse(flags[2])
            flags[2] = True
            self.assertTrue(flags[1])
            self.assertFalse(flags[3])

        # When third deferred fires, only flags[3] should be unset
        @defer.inlineCallbacks
        def d3():
            yield queue.execute(self.delayed_success())

            self.assertFalse(flags[3])
            flags[3] = True
            self.assertTrue(flags[1])
            self.assertTrue(flags[2])

        yield defer.DeferredList([d1(), d2(), d3()], fireOnOneErrback=True)
Ejemplo n.º 5
0
 def setUp(self):
     self.queue = libvirtworker.WorkQueue()
Ejemplo n.º 6
0
 def test_second_pow_fires(self):
     queue = libvirtworker.WorkQueue()
     yield queue.execute(self.delayed_success())
     yield queue.execute(self.delayed_success())
Ejemplo n.º 7
0
 def test_fail_doesnt_break_further_work(self):
     queue = libvirtworker.WorkQueue()
     yield self.expect_errback(queue.execute(self.delayed_errback()))
     yield queue.execute(self.delayed_success())
Ejemplo n.º 8
0
 def test_single_pow_errors_gracefully(self):
     queue = libvirtworker.WorkQueue()
     d = queue.execute(self.delayed_errback())
     yield self.expect_errback(d)
Ejemplo n.º 9
0
 def test_handle_delayed_success(self):
     queue = libvirtworker.WorkQueue()
     work = self.delayed_success()
     yield queue.execute(work)
Ejemplo n.º 10
0
 def test_handle_delayed_errback(self):
     queue = libvirtworker.WorkQueue()
     work = self.delayed_errback()
     yield self.expect_errback(queue.execute(work))