Exemplo n.º 1
0
 def test_event_timeout(self):
     ev = Event()
     def waiter():
         self.assertFalse(ev.wait(0.001))
     evergreen.spawn(waiter)
     self.loop.call_later(0.1, ev.set)
     self.loop.run()
Exemplo n.º 2
0
 def test_processpool_executor(self):
     executor = futures.ProcessPoolExecutor(5)
     def waiter():
         f = executor.submit(dummy)
         self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 3
0
    def test_destroy_while_running(self):
        def func():
            evergreen.sleep(0.01)
            self.assertRaises(RuntimeError, self.loop.destroy)

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 4
0
 def test_event_simple(self):
     ev = Event()
     def waiter():
         self.assertTrue(ev.wait())
     evergreen.spawn(waiter)
     evergreen.spawn(ev.set)
     self.loop.run()
Exemplo n.º 5
0
 def test_semaphore(self):
     def func():
         lock = locks.Semaphore()
         lock.acquire()
         self.assertFalse(lock.acquire(blocking=False))
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 6
0
 def test_default_executor(self):
     def func():
         return 42
     def waiter():
         f = self.loop.run_in_executor(None, func)
         self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 7
0
 def test_spawn(self):
     d = dummy()
     d.called = False
     def func():
         d.called = True
     evergreen.spawn(func)
     self.loop.run()
     self.assertTrue(d.called)
Exemplo n.º 8
0
 def test_spawn_order(self):
     called = []
     def func(x):
         called.append(x)
     for i in range(5):
         evergreen.spawn(func, i)
     self.loop.run()
     self.assertEqual(called, [0, 1, 2, 3, 4])
Exemplo n.º 9
0
 def test_bounded_semaphore(self):
     def func():
         lock = locks.BoundedSemaphore()
         lock.acquire()
         lock.release()
         self.assertRaises(ValueError, lock.release)
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 10
0
 def test_with_timeout(self):
     def sleep():
         with Timeout(0.01):
             evergreen.sleep(10)
     def func():
         self.assertRaises(Timeout, sleep)
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 11
0
 def test_with_negative_timeout(self):
     def sleep():
         with Timeout(-1):
             evergreen.sleep(0.01)
     def func():
         sleep()
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 12
0
 def test_timeout_custom_exception(self):
     def sleep():
         with Timeout(0.01, FooTimeout):
             evergreen.sleep(10)
     def func():
         self.assertRaises(FooTimeout, sleep)
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 13
0
    def test_semaphore(self):
        def func():
            lock = locks.Semaphore()
            lock.acquire()
            self.assertFalse(lock.acquire(blocking=False))

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 14
0
 def test_default_executor_raises(self):
     def func():
         1/0
     def waiter():
         f = self.loop.run_in_executor(None, func)
         self.assertRaises(ZeroDivisionError, f.get)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 15
0
    def test_processpool_executor(self):
        executor = futures.ProcessPoolExecutor(5)

        def waiter():
            f = executor.submit(dummy)
            self.assertEqual(f.get(), 42)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 16
0
 def test_channel_exception(self):
     ch = evergreen.Channel()
     def sender():
         ch.send_exception(RuntimeError)
     def receiver():
         self.assertRaises(RuntimeError, ch.receive)
     evergreen.spawn(sender)
     evergreen.spawn(receiver)
     self.loop.run()
Exemplo n.º 17
0
 def test_channel_simple(self):
     ch = evergreen.Channel()
     def sender():
         ch.send('test')
     def receiver():
         self.assertEqual(ch.receive(), 'test')
     evergreen.spawn(sender)
     evergreen.spawn(receiver)
     self.loop.run()
Exemplo n.º 18
0
 def test_taskpool_executor_raises(self):
     executor = futures.TaskPoolExecutor(10)
     def func():
         1/0
     def waiter():
         f = executor.submit(func)
         self.assertRaises(ZeroDivisionError, f.get)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 19
0
 def test_executor_with(self):
     def func():
         return 42
     def waiter():
         with futures.TaskPoolExecutor(5) as e:
             f = e.submit(func)
             self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 20
0
 def test_event_kill_waiter(self):
     ev = Event()
     def waiter():
         ev.wait()
     t1 = evergreen.spawn(waiter)
     evergreen.spawn(t1.kill)
     evergreen.spawn(ev.set)
     self.loop.run()
     self.assertTrue(ev.is_set())
Exemplo n.º 21
0
 def test_event_clear(self):
     ev = Event()
     def waiter():
         self.assertTrue(ev.wait())
         ev.clear()
     evergreen.spawn(waiter)
     evergreen.spawn(ev.set)
     self.loop.run()
     self.assertFalse(ev.is_set())
Exemplo n.º 22
0
 def test_taskpool_executor(self):
     executor = futures.TaskPoolExecutor(10)
     def func():
         return 42
     def waiter():
         f = executor.submit(func)
         self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 23
0
    def test_bounded_semaphore(self):
        def func():
            lock = locks.BoundedSemaphore()
            lock.acquire()
            lock.release()
            self.assertRaises(ValueError, lock.release)

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 24
0
 def test_timeout(self):
     def func():
         t = Timeout(0.01)
         t.start()
         try:
             evergreen.sleep(10)
         except Timeout as e:
             self.assertTrue(t is e)
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 25
0
 def test_taskpool_executor_return_exception(self):
     executor = futures.TaskPoolExecutor(10)
     def func():
         1/0
     def waiter():
         f = executor.submit(func)
         e = f.get(return_exception=True)
         self.assertTrue(isinstance(e, ZeroDivisionError))
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 26
0
    def test_spawn(self):
        d = dummy()
        d.called = False

        def func():
            d.called = True

        evergreen.spawn(func)
        self.loop.run()
        self.assertTrue(d.called)
Exemplo n.º 27
0
 def test_rlock(self):
     lock = locks.RLock()
     def func1():
         lock.acquire()
         self.assertTrue(lock.acquire())
     def func2():
         self.assertFalse(lock.acquire(blocking=False))
     evergreen.spawn(func1)
     evergreen.spawn(func2)
     self.loop.run()
Exemplo n.º 28
0
    def test_default_executor(self):
        def func():
            return 42

        def waiter():
            f = self.loop.run_in_executor(None, func)
            self.assertEqual(f.get(), 42)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 29
0
    def test_default_executor_raises(self):
        def func():
            1 / 0

        def waiter():
            f = self.loop.run_in_executor(None, func)
            self.assertRaises(ZeroDivisionError, f.get)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 30
0
    def test_with_negative_timeout(self):
        def sleep():
            with Timeout(-1):
                evergreen.sleep(0.01)

        def func():
            sleep()

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 31
0
    def test_timeout_custom_exception(self):
        def sleep():
            with Timeout(0.01, FooTimeout):
                evergreen.sleep(10)

        def func():
            self.assertRaises(FooTimeout, sleep)

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 32
0
    def test_with_timeout(self):
        def sleep():
            with Timeout(0.01):
                evergreen.sleep(10)

        def func():
            self.assertRaises(Timeout, sleep)

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 33
0
 def test_task_bogus_switch(self):
     def func1():
         evergreen.sleep(0)
         evergreen.sleep(0)
     def func2():
         self.assertRaises(RuntimeError, t1.switch)
         self.assertRaises(RuntimeError, t1.throw)
     t1 = evergreen.spawn(func1)
     t2 = evergreen.spawn(func2)
     self.loop.run()
Exemplo n.º 34
0
    def test_spawn_order(self):
        called = []

        def func(x):
            called.append(x)

        for i in range(5):
            evergreen.spawn(func, i)
        self.loop.run()
        self.assertEqual(called, [0, 1, 2, 3, 4])
Exemplo n.º 35
0
 def test_future_as_completed(self):
     def func(x):
         evergreen.sleep(x)
         return 42
     def waiter():
         l = [self.loop.run_in_executor(None, func, 0.001) for x in range(10)]
         for f in futures.as_completed(l):
             self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 36
0
    def test_executor_with(self):
        def func():
            return 42

        def waiter():
            with futures.TaskPoolExecutor(5) as e:
                f = e.submit(func)
                self.assertEqual(f.get(), 42)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 37
0
 def test_pipe_read_error(self):
     def connect():
         client = pipe.PipeClient()
         client.connect(TEST_PIPE)
         evergreen.sleep(0.1)  # give it some time to stabilize
         client.close()
         self.assertRaises(pipe.PipeError, client.read_until, b'\n')
         self.server.close()
     evergreen.spawn(self._start_pipe_echo_server)
     evergreen.spawn(connect)
     self.loop.run()
Exemplo n.º 38
0
 def test_map(self):
     executor = futures.TaskPoolExecutor(10)
     def func(x):
         return x*x
     def waiter():
         l1 = [2, 4, 6]
         l2 = [4, 16, 36]
         r = list(executor.map(func, l1))
         self.assertEqual(r, l2)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 39
0
 def test_internal_threadpool(self):
     tid = threading.current_thread().ident
     def runner():
         import time
         time.sleep(0.001)
         return threading.current_thread().ident
     def func():
         r = self.loop._threadpool.spawn(runner)
         self.assertNotEqual(r.get(), tid)
     evergreen.spawn(func)
     self.loop.run()
Exemplo n.º 40
0
    def test_timeout(self):
        def func():
            t = Timeout(0.01)
            t.start()
            try:
                evergreen.sleep(10)
            except Timeout as e:
                self.assertTrue(t is e)

        evergreen.spawn(func)
        self.loop.run()
Exemplo n.º 41
0
 def test_tcp_read_error(self):
     def connect():
         client = tcp.TCPClient()
         client.connect(TEST_CLIENT)
         evergreen.sleep(0.1)  # give it some time to stabilize
         client.close()
         self.assertRaises(tcp.TCPError, client.read_until, b'\n')
         self.server.close()
     evergreen.spawn(self._start_tcp_echo_server)
     evergreen.spawn(connect)
     self.loop.run()
Exemplo n.º 42
0
 def test_future_as_completed(self):
     executor = futures.TaskPoolExecutor(10)
     def func(x):
         evergreen.sleep(x)
         return 42
     def waiter():
         l = [executor.submit(func, 0.001) for x in range(10)]
         for f in futures.as_completed(l):
             self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 43
0
 def test_threadpool_executor(self):
     executor = futures.ThreadPoolExecutor(5)
     def func():
         import time
         time.sleep(0.01)
         return 42
     def waiter():
         f = executor.submit(func)
         self.assertEqual(f.get(), 42)
     evergreen.spawn(waiter)
     self.loop.run()
Exemplo n.º 44
0
    def test_pipe_read_error(self):
        def connect():
            client = pipe.PipeClient()
            client.connect(TEST_PIPE)
            evergreen.sleep(0.1)  # give it some time to stabilize
            client.close()
            self.assertRaises(pipe.PipeError, client.read_until, b'\n')
            self.server.close()

        evergreen.spawn(self._start_pipe_echo_server)
        evergreen.spawn(connect)
        self.loop.run()
Exemplo n.º 45
0
    def test_tcp_read_error(self):
        def connect():
            client = tcp.TCPClient()
            client.connect(TEST_CLIENT)
            evergreen.sleep(0.1)  # give it some time to stabilize
            client.close()
            self.assertRaises(tcp.TCPError, client.read_until, b'\n')
            self.server.close()

        evergreen.spawn(self._start_tcp_echo_server)
        evergreen.spawn(connect)
        self.loop.run()
Exemplo n.º 46
0
    def test_taskpool_executor_raises(self):
        executor = futures.TaskPoolExecutor(10)

        def func():
            1 / 0

        def waiter():
            f = executor.submit(func)
            self.assertRaises(ZeroDivisionError, f.get)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 47
0
    def test_task_bogus_switch(self):
        def func1():
            evergreen.sleep(0)
            evergreen.sleep(0)

        def func2():
            self.assertRaises(RuntimeError, t1.switch)
            self.assertRaises(RuntimeError, t1.throw)

        t1 = evergreen.spawn(func1)
        t2 = evergreen.spawn(func2)
        self.loop.run()
Exemplo n.º 48
0
    def test_taskpool_executor(self):
        executor = futures.TaskPoolExecutor(10)

        def func():
            return 42

        def waiter():
            f = executor.submit(func)
            self.assertEqual(f.get(), 42)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 49
0
    def test_kill_running(self):
        called = []

        def func():
            evergreen.sleep(0)
            called.append(None)
            evergreen.sleep(0)
            called.append(None)

        task1 = evergreen.spawn(func)
        task2 = evergreen.spawn(task1.kill)
        self.loop.run()
        self.assertEqual(len(called), 1)
Exemplo n.º 50
0
    def test_rlock(self):
        lock = locks.RLock()

        def func1():
            lock.acquire()
            self.assertTrue(lock.acquire())

        def func2():
            self.assertFalse(lock.acquire(blocking=False))

        evergreen.spawn(func1)
        evergreen.spawn(func2)
        self.loop.run()
Exemplo n.º 51
0
    def test_pipe_read(self):
        def connect():
            client = pipe.PipeClient()
            client.connect(TEST_PIPE)
            client.write(b'PING\n')
            data = client.read_until(b'\n')
            self.assertEqual(data, b'PING\n')
            client.close()
            self.server.close()

        evergreen.spawn(self._start_pipe_echo_server)
        evergreen.spawn(connect)
        self.loop.run()
Exemplo n.º 52
0
    def test_future_wait(self):
        def func():
            evergreen.sleep(0.001)
            return 42

        def waiter():
            f = self.loop.run_in_executor(None, func)
            done, not_done = futures.wait([f])
            self.assertTrue(f in done)
            self.assertEqual(f.get(), 42)

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 53
0
    def test_taskpool_executor_return_exception(self):
        executor = futures.TaskPoolExecutor(10)

        def func():
            1 / 0

        def waiter():
            f = executor.submit(func)
            e = f.get(return_exception=True)
            self.assertTrue(isinstance(e, ZeroDivisionError))

        evergreen.spawn(waiter)
        self.loop.run()
Exemplo n.º 54
0
    def test_task_sleep(self):
        called = []

        def func():
            called.append(None)
            evergreen.sleep(0.001)
            called.append(None)

        evergreen.spawn(func)
        t0 = time.time()
        self.loop.run()
        t1 = time.time()
        self.assertEqual(len(called), 2)
        self.assertTrue(0 <= t1 - t0 < 0.1)