diff options
author | Guido van Rossum <guido@python.org> | 2013-10-17 10:56:15 -0700 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2013-10-17 10:56:15 -0700 |
commit | 5efc53aaea9711ea9989a29e664a6b04d555e5f6 (patch) | |
tree | ee1f3481fbab010890a5180f0af110bfd66e6a65 | |
parent | 2778f220cfdc44963ccf25e59091f072faa27126 (diff) | |
download | trollius-5efc53aaea9711ea9989a29e664a6b04d555e5f6.tar.gz |
Various test tweaks to be more precise about coroutines.
-rw-r--r-- | tests/base_events_test.py | 5 | ||||
-rw-r--r-- | tests/events_test.py | 1 | ||||
-rw-r--r-- | tests/tasks_test.py | 27 | ||||
-rw-r--r-- | tulip/test_utils.py | 8 |
4 files changed, 31 insertions, 10 deletions
diff --git a/tests/base_events_test.py b/tests/base_events_test.py index 609edb0..478d821 100644 --- a/tests/base_events_test.py +++ b/tests/base_events_test.py @@ -44,9 +44,8 @@ class BaseEventLoopTests(unittest.TestCase): self.assertRaises( NotImplementedError, self.loop._make_write_pipe_transport, m, m) - self.assertRaises( - NotImplementedError, - next, self.loop._make_subprocess_transport(m, m, m, m, m, m, m)) + gen = self.loop._make_subprocess_transport(m, m, m, m, m, m, m) + self.assertRaises(NotImplementedError, next, iter(gen)) def test__add_callback_handle(self): h = events.Handle(lambda: False, ()) diff --git a/tests/events_test.py b/tests/events_test.py index 3b667aa..1d2a60d 100644 --- a/tests/events_test.py +++ b/tests/events_test.py @@ -926,6 +926,7 @@ class EventLoopTestsMixin: ov = getattr(f, 'ov', None) self.assertTrue(ov is None or ov.pending) + @tasks.coroutine def main(): try: self.loop.call_soon(f.cancel) diff --git a/tests/tasks_test.py b/tests/tasks_test.py index 396e4f7..b8dcd7e 100644 --- a/tests/tasks_test.py +++ b/tests/tasks_test.py @@ -136,8 +136,10 @@ class TaskTests(unittest.TestCase): def __repr__(self): return super().__repr__() - t = MyTask(coro(), loop=self.loop) + gen = coro() + t = MyTask(gen, loop=self.loop) self.assertEqual(repr(t), 'T[](<coro>)') + gen.close() def test_task_basics(self): @tasks.coroutine @@ -942,10 +944,12 @@ class TaskTests(unittest.TestCase): def notmuch(): return 'ko' - task = tasks.Task(notmuch(), loop=self.loop) + gen = notmuch() + task = tasks.Task(gen, loop=self.loop) task.set_result('ok') self.assertRaises(AssertionError, task._step) + gen.close() def test_step_result(self): @tasks.coroutine @@ -1069,7 +1073,11 @@ class TaskTests(unittest.TestCase): @tasks.coroutine def wait_for_future(): - yield coro() + gen = coro() + try: + yield gen + finally: + gen.close() task = wait_for_future() self.assertRaises( @@ -1426,6 +1434,7 @@ class CoroutineGatherTests(GatherTestsBase, unittest.TestCase): def wrap_futures(self, *futures): coros = [] for fut in futures: + @tasks.coroutine def coro(fut=fut): return (yield from fut) coros.append(coro()) @@ -1435,10 +1444,18 @@ class CoroutineGatherTests(GatherTestsBase, unittest.TestCase): @tasks.coroutine def coro(): return 'abc' - fut = tasks.gather(coro(), coro()) + gen1 = coro() + gen2 = coro() + fut = tasks.gather(gen1, gen2) self.assertIs(fut._loop, self.one_loop) - fut = tasks.gather(coro(), coro(), loop=self.other_loop) + gen1.close() + gen2.close() + gen3 = coro() + gen4 = coro() + fut = tasks.gather(gen3, gen4, loop=self.other_loop) self.assertIs(fut._loop, self.other_loop) + gen3.close() + gen4.close() def test_cancellation_broadcast(self): # Cancelling outer() cancels all children. diff --git a/tulip/test_utils.py b/tulip/test_utils.py index 6555142..f3cd8fb 100644 --- a/tulip/test_utils.py +++ b/tulip/test_utils.py @@ -38,8 +38,12 @@ def run_briefly(loop): @tulip.coroutine def once(): pass - t = tulip.Task(once(), loop=loop) - loop.run_until_complete(t) + gen = once() + t = tulip.Task(gen, loop=loop) + try: + loop.run_until_complete(t) + finally: + gen.close() def run_once(loop): |