示例#1
0
    def setUp(self):
        super().setUp()
        self.exit_stack = contextlib.ExitStack()

        self.k = kernels.Kernel(sanity_check_frequency=1)
        self.exit_stack.callback(self.k.close)

        r, w = os.pipe()
        os.set_blocking(r, False)
        os.set_blocking(w, False)
        self.r = os.fdopen(r, 'rb')
        self.w = os.fdopen(w, 'wb')
        self.exit_stack.callback(self.r.close)
        self.exit_stack.callback(self.w.close)

        self.k.notify_open(r)
        self.k.notify_open(w)
示例#2
0
    def test_disallow_across_kernel(self):
        async def f():
            pass

        async def join():
            await traps.join(test_task)

        with kernels.Kernel(sanity_check_frequency=1) as k:
            test_task = k.spawn(f)

        with self.assertRaisesRegex(AssertionError, r'expect.*Kernel'):
            self.k.run(join())

        with self.assertRaisesRegex(AssertionError, r'expect.*Kernel'):
            self.k.cancel(test_task)

        with self.assertRaisesRegex(AssertionError, r'expect.*Kernel'):
            self.k.timeout_after(test_task, 0)
示例#3
0
    def test_get_task(self):
        async def func():
            return tasks.get_current_task()

        self.assertEqual(tasks.get_all_tasks(), [])
        self.assertIsNone(tasks.get_current_task())

        k = kernels.Kernel()
        token = contexts.set_kernel(k)
        try:
            task = k.spawn(func)
            self.assertEqual(tasks.get_all_tasks(), [task])

            k.run(timeout=1)
            self.assertEqual(tasks.get_all_tasks(), [])

            self.assertIs(task, task.get_result_nonblocking())

        finally:
            contexts.KERNEL.reset(token)
            k.close()

        self.assertEqual(tasks.get_all_tasks(), [])
        self.assertIsNone(tasks.get_current_task())
示例#4
0
 def setUp(self):
     self.k = kernels.Kernel()
     self.token = contexts.set_kernel(self.k)
示例#5
0
 def setUp(self):
     self.k = kernels.Kernel()
     self.token = contexts.set_kernel(self.k)
     s0, s1 = socket.socketpair()
     self.s0 = adapters.SocketAdapter(s0)
     self.s1 = adapters.SocketAdapter(s1)
示例#6
0
 def setUp(self):
     self.k = kernels.Kernel()
     self.token = contexts.set_kernel(self.k)
     r, w = os.pipe()
     self.r = adapters.FileAdapter(os.fdopen(r, 'rb'))
     self.w = adapters.FileAdapter(os.fdopen(w, 'wb'))
示例#7
0
 def setUp(self):
     self.s = streams.BytesStream()
     self.k = kernels.Kernel()
     self.token = contexts.set_kernel(self.k)