Exemplo n.º 1
0
    def test_schedule_in(self):
        l = []

        def f1():
            l.append(1)
        greenhouse.schedule_in(TESTING_TIMEOUT, f1)

        @greenhouse.schedule_in(TESTING_TIMEOUT)
        def f2():
            l.append(2)

        @greenhouse.schedule_in(TESTING_TIMEOUT, args=(3,))
        def f3(x):
            l.append(x)

        @greenhouse.schedule_in(TESTING_TIMEOUT, kwargs={'x': 4})
        def f4(x=None):
            l.append(x)

        @greenhouse.compat.greenlet
        def f5():
            l.append(5)
        greenhouse.schedule_in(TESTING_TIMEOUT, f5)

        greenhouse.pause()
        assert not l

        time.sleep(TESTING_TIMEOUT)
        greenhouse.pause()

        l.sort()
        assert l == [1, 2, 3, 4, 5], l
Exemplo n.º 2
0
    def test_schedule_in(self):
        l = []

        def f1():
            l.append(1)
        greenhouse.schedule_in(TESTING_TIMEOUT, f1)

        @greenhouse.schedule_in(TESTING_TIMEOUT)
        def f2():
            l.append(2)

        @greenhouse.schedule_in(TESTING_TIMEOUT, args=(3,))
        def f3(x):
            l.append(x)

        @greenhouse.schedule_in(TESTING_TIMEOUT, kwargs={'x': 4})
        def f4(x=None):
            l.append(x)

        @greenhouse.compat.greenlet
        def f5():
            l.append(5)
        greenhouse.schedule_in(TESTING_TIMEOUT, f5)

        greenhouse.pause()
        assert not l

        time.sleep(TESTING_TIMEOUT)
        greenhouse.pause()

        l.sort()
        assert l == [1, 2, 3, 4, 5], l
Exemplo n.º 3
0
    def test_downed_recipient_cancels_the_hub_sender_during_chunked_request(self):
        global PORT
        hub = junction.Hub(("127.0.0.1", PORT), [])
        PORT += 2
        triggered = [False]

        @hub.accept_rpc('service', 0, 0, 'method')
        def handle(chunks):
            for item in chunks:
                pass
            return "all done"

        hub.start()

        hub2 = junction.Hub(("127.0.0.1", PORT), [("127.0.0.1", PORT - 2)])
        PORT += 2
        hub2.start()
        hub2.wait_connected()

        def gen():
            try:
                while 1:
                    yield None
                    greenhouse.pause_for(TIMEOUT)
            finally:
                triggered[0] = True

        rpc = hub2.send_rpc('service', 0, 'method', (gen(),))

        hub = [hub]
        greenhouse.schedule_in(TIMEOUT * 4, self.kill_hub, args=(hub,))

        greenhouse.pause_for(TIMEOUT * 5)

        assert triggered[0]
Exemplo n.º 4
0
 def spawn(self, after=None):
     if after is None:
         schedule(self.greenlet)
     else:
         schedule_in(after, self.greenlet)
     return self
Exemplo n.º 5
0
 def spawn(self, after=None):
     if after is None:
         schedule(self.greenlet)
     else:
         schedule_in(after, self.greenlet)
     return self