summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2013-10-17 10:56:15 -0700
committerGuido van Rossum <guido@python.org>2013-10-17 10:56:15 -0700
commit5efc53aaea9711ea9989a29e664a6b04d555e5f6 (patch)
treeee1f3481fbab010890a5180f0af110bfd66e6a65
parent2778f220cfdc44963ccf25e59091f072faa27126 (diff)
downloadtrollius-5efc53aaea9711ea9989a29e664a6b04d555e5f6.tar.gz
Various test tweaks to be more precise about coroutines.
-rw-r--r--tests/base_events_test.py5
-rw-r--r--tests/events_test.py1
-rw-r--r--tests/tasks_test.py27
-rw-r--r--tulip/test_utils.py8
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):