Skip to content

Commit 29c7771

Browse files
committed
add some tests
1 parent 8bba636 commit 29c7771

File tree

2 files changed

+64
-2
lines changed

2 files changed

+64
-2
lines changed

Lib/test/test_asyncio/test_eager_task_factory.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,39 @@ async def run():
263263

264264
self.run_coro(run())
265265

266+
def test_eager_start_false(self):
267+
name = None
268+
269+
async def asyncfn():
270+
nonlocal name
271+
name = asyncio.current_task().get_name()
272+
273+
async def main():
274+
t = asyncio.create_task(asyncfn(), eager_start=False, name="example")
275+
self.assertFalse(t.done())
276+
self.assertIsNone(name)
277+
await t
278+
self.assertEqual(name, "example")
279+
280+
self.run_coro(main())
281+
282+
283+
def test_eager_start_false_tg(self):
284+
name = None
285+
286+
async def asyncfn():
287+
nonlocal name
288+
name = asyncio.current_task().get_name()
289+
290+
async def main():
291+
async with asyncio.TaskGroup() as tg:
292+
t = tg.create_task(asyncfn(), eager_start=False, name="example")
293+
self.assertFalse(t.done())
294+
self.assertIsNone(name)
295+
self.assertEqual(name, "example")
296+
297+
self.run_coro(main())
298+
266299

267300
class PyEagerTaskFactoryLoopTests(EagerTaskFactoryLoopTests, test_utils.TestCase):
268301
Task = tasks._PyTask

Lib/test/test_asyncio/test_tasks.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ class BaseTaskTests:
8989
Future = None
9090
all_tasks = None
9191

92-
def new_task(self, loop, coro, name='TestTask', context=None):
93-
return self.__class__.Task(coro, loop=loop, name=name, context=context)
92+
def new_task(self, loop, coro, name='TestTask', context=None, eager_start=None):
93+
return self.__class__.Task(coro, loop=loop, name=name, context=context, eager_start=eager_start)
9494

9595
def new_future(self, loop):
9696
return self.__class__.Future(loop=loop)
@@ -2667,6 +2667,35 @@ async def main():
26672667

26682668
self.assertEqual([None, 1, 2], ret)
26692669

2670+
def test_eager_start_true(self):
2671+
name = None
2672+
2673+
async def asyncfn():
2674+
nonlocal name
2675+
name = asyncio.current_task().get_name()
2676+
2677+
async def main():
2678+
t = self.new_task(coro=asyncfn(), loop=asyncio.get_running_loop(), eager_start=True, name="example")
2679+
self.assertTrue(t.done())
2680+
self.assertEqual(name, "example")
2681+
await t
2682+
2683+
def test_eager_start_false(self):
2684+
name = None
2685+
2686+
async def asyncfn():
2687+
nonlocal name
2688+
name = asyncio.current_task().get_name()
2689+
2690+
async def main():
2691+
t = self.new_task(coro=asyncfn(), loop=asyncio.get_running_loop(), eager_start=False, name="example")
2692+
self.assertFalse(t.done())
2693+
self.assertIsNone(name)
2694+
await t
2695+
self.assertEqual(name, "example")
2696+
2697+
asyncio.run(main(), loop_factory=asyncio.EventLoop)
2698+
26702699
def test_get_coro(self):
26712700
loop = asyncio.new_event_loop()
26722701
coro = coroutine_function()

0 commit comments

Comments
 (0)