Skip to content

Commit 9c91cfa

Browse files
committed
simplify name handling
1 parent 96c0569 commit 9c91cfa

File tree

2 files changed

+17
-25
lines changed

2 files changed

+17
-25
lines changed

Lib/asyncio/base_events.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -464,23 +464,12 @@ def create_task(self, coro, **kwargs):
464464
Return a task object.
465465
"""
466466
self._check_closed()
467-
if self._task_factory is None:
468-
task = tasks.Task(coro, loop=self, **kwargs)
469-
if task._source_traceback:
470-
del task._source_traceback[-1]
471-
else:
472-
task = None
473-
name = None
474-
try:
475-
task = self._task_factory(self, coro, **kwargs)
476-
except TypeError as e:
477-
name = kwargs.pop("name", None)
478-
if kwargs:
479-
raise
467+
if self._task_factory is not None:
468+
return self._task_factory(self, coro, **kwargs)
480469

481-
if task is None:
482-
task = self._task_factory(self, coro, **kwargs)
483-
task.set_name(name)
470+
task = tasks.Task(coro, loop=self, **kwargs)
471+
if task._source_traceback:
472+
del task._source_traceback[-1]
484473
try:
485474
return task
486475
finally:

Lib/test/test_asyncio/test_base_events.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Tests for base_events.py"""
22

33
import concurrent.futures
4+
import contextlib
45
import errno
56
import math
67
import platform
@@ -834,19 +835,21 @@ async def test():
834835

835836
def test_create_named_task_with_custom_factory(self):
836837
def task_factory(loop, coro):
837-
return asyncio.Task(coro, loop=loop)
838+
assert False
838839

839840
async def test():
840841
pass
841842

842-
loop = asyncio.new_event_loop()
843-
loop.set_task_factory(task_factory)
844-
task = loop.create_task(test(), name='test_task')
845-
try:
846-
self.assertEqual(task.get_name(), 'test_task')
847-
finally:
848-
loop.run_until_complete(task)
849-
loop.close()
843+
with (
844+
contextlib.closing(asyncio.EventLoop()) as loop,
845+
contextlib.closing(test()) as coro,
846+
):
847+
loop.set_task_factory(task_factory)
848+
with self.assertRaisesRegex(
849+
TypeError,
850+
r"got an unexpected keyword argument 'name'"
851+
):
852+
loop.create_task(coro, name='test_task')
850853

851854
def test_run_forever_keyboard_interrupt(self):
852855
# Python issue #22601: ensure that the temporary task created by

0 commit comments

Comments
 (0)