Skip to content

Commit af0280a

Browse files
add tests
1 parent ee7ead2 commit af0280a

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

Lib/asyncio/tasks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1025,7 +1025,7 @@ def _unregister_eager_task(task):
10251025
_py_enter_task = _enter_task
10261026
_py_leave_task = _leave_task
10271027
_py_swap_current_task = _swap_current_task
1028-
1028+
_py_all_tasks = all_tasks
10291029

10301030
try:
10311031
from _asyncio import (_register_task, _register_eager_task,
@@ -1044,3 +1044,4 @@ def _unregister_eager_task(task):
10441044
_c_enter_task = _enter_task
10451045
_c_leave_task = _leave_task
10461046
_c_swap_current_task = _swap_current_task
1047+
_c_all_tasks = all_tasks

Lib/test/test_asyncio/test_tasks.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class BaseTaskTests:
8585

8686
Task = None
8787
Future = None
88+
all_tasks = None
8889

8990
def new_task(self, loop, coro, name='TestTask', context=None):
9091
return self.__class__.Task(coro, loop=loop, name=name, context=context)
@@ -2087,7 +2088,7 @@ async def kill_me(loop):
20872088
coro = kill_me(self.loop)
20882089
task = asyncio.ensure_future(coro, loop=self.loop)
20892090

2090-
self.assertEqual(asyncio.all_tasks(loop=self.loop), {task})
2091+
self.assertEqual(self.all_tasks(loop=self.loop), {task})
20912092

20922093
asyncio.set_event_loop(None)
20932094

@@ -2102,7 +2103,7 @@ async def kill_me(loop):
21022103
# no more reference to kill_me() task: the task is destroyed by the GC
21032104
support.gc_collect()
21042105

2105-
self.assertEqual(asyncio.all_tasks(loop=self.loop), set())
2106+
self.assertEqual(self.all_tasks(loop=self.loop), set())
21062107

21072108
mock_handler.assert_called_with(self.loop, {
21082109
'message': 'Task was destroyed but it is pending!',
@@ -2251,7 +2252,7 @@ async def coro():
22512252
message = m_log.error.call_args[0][0]
22522253
self.assertIn('Task was destroyed but it is pending', message)
22532254

2254-
self.assertEqual(asyncio.all_tasks(self.loop), set())
2255+
self.assertEqual(self.all_tasks(self.loop), set())
22552256

22562257
def test_create_task_with_noncoroutine(self):
22572258
with self.assertRaisesRegex(TypeError,
@@ -2551,6 +2552,7 @@ async def func():
25512552
# Add patched Task & Future back to the test case
25522553
cls.Task = Task
25532554
cls.Future = Future
2555+
cls.all_tasks = tasks.all_tasks
25542556

25552557
# Add an extra unit-test
25562558
cls.test_subclasses_ctask_cfuture = test_subclasses_ctask_cfuture
@@ -2624,6 +2626,7 @@ class CTask_CFuture_Tests(BaseTaskTests, SetMethodsTest,
26242626

26252627
Task = getattr(tasks, '_CTask', None)
26262628
Future = getattr(futures, '_CFuture', None)
2629+
all_tasks = getattr(tasks, '_c_all_tasks', None)
26272630

26282631
@support.refcount_test
26292632
def test_refleaks_in_task___init__(self):
@@ -2655,6 +2658,7 @@ class CTask_CFuture_SubclassTests(BaseTaskTests, test_utils.TestCase):
26552658

26562659
Task = getattr(tasks, '_CTask', None)
26572660
Future = getattr(futures, '_CFuture', None)
2661+
all_tasks = getattr(tasks, '_c_all_tasks', None)
26582662

26592663

26602664
@unittest.skipUnless(hasattr(tasks, '_CTask'),
@@ -2664,6 +2668,7 @@ class CTaskSubclass_PyFuture_Tests(BaseTaskTests, test_utils.TestCase):
26642668

26652669
Task = getattr(tasks, '_CTask', None)
26662670
Future = futures._PyFuture
2671+
all_tasks = getattr(tasks, '_py_all_tasks', None)
26672672

26682673

26692674
@unittest.skipUnless(hasattr(futures, '_CFuture'),
@@ -2673,6 +2678,7 @@ class PyTask_CFutureSubclass_Tests(BaseTaskTests, test_utils.TestCase):
26732678

26742679
Future = getattr(futures, '_CFuture', None)
26752680
Task = tasks._PyTask
2681+
all_tasks = getattr(tasks, '_py_all_tasks', None)
26762682

26772683

26782684
@unittest.skipUnless(hasattr(tasks, '_CTask'),
@@ -2681,6 +2687,7 @@ class CTask_PyFuture_Tests(BaseTaskTests, test_utils.TestCase):
26812687

26822688
Task = getattr(tasks, '_CTask', None)
26832689
Future = futures._PyFuture
2690+
all_tasks = getattr(tasks, '_c_all_tasks', None)
26842691

26852692

26862693
@unittest.skipUnless(hasattr(futures, '_CFuture'),
@@ -2689,13 +2696,15 @@ class PyTask_CFuture_Tests(BaseTaskTests, test_utils.TestCase):
26892696

26902697
Task = tasks._PyTask
26912698
Future = getattr(futures, '_CFuture', None)
2699+
all_tasks = getattr(tasks, '_c_all_tasks', None)
26922700

26932701

26942702
class PyTask_PyFuture_Tests(BaseTaskTests, SetMethodsTest,
26952703
test_utils.TestCase):
26962704

26972705
Task = tasks._PyTask
26982706
Future = futures._PyFuture
2707+
all_tasks = asyncio.all_tasks
26992708

27002709

27012710
@add_subclass_tests
@@ -2735,6 +2744,7 @@ class BaseTaskIntrospectionTests:
27352744
_unregister_task = None
27362745
_enter_task = None
27372746
_leave_task = None
2747+
all_tasks = None
27382748

27392749
def test__register_task_1(self):
27402750
class TaskLike:
@@ -2748,9 +2758,9 @@ def done(self):
27482758
task = TaskLike()
27492759
loop = mock.Mock()
27502760

2751-
self.assertEqual(asyncio.all_tasks(loop), set())
2761+
self.assertEqual(self.all_tasks(loop), set())
27522762
self._register_task(task)
2753-
self.assertEqual(asyncio.all_tasks(loop), {task})
2763+
self.assertEqual(self.all_tasks(loop), {task})
27542764
self._unregister_task(task)
27552765

27562766
def test__register_task_2(self):
@@ -2764,9 +2774,9 @@ def done(self):
27642774
task = TaskLike()
27652775
loop = mock.Mock()
27662776

2767-
self.assertEqual(asyncio.all_tasks(loop), set())
2777+
self.assertEqual(self.all_tasks(loop), set())
27682778
self._register_task(task)
2769-
self.assertEqual(asyncio.all_tasks(loop), {task})
2779+
self.assertEqual(self.all_tasks(loop), {task})
27702780
self._unregister_task(task)
27712781

27722782
def test__register_task_3(self):
@@ -2780,9 +2790,9 @@ def done(self):
27802790
task = TaskLike()
27812791
loop = mock.Mock()
27822792

2783-
self.assertEqual(asyncio.all_tasks(loop), set())
2793+
self.assertEqual(self.all_tasks(loop), set())
27842794
self._register_task(task)
2785-
self.assertEqual(asyncio.all_tasks(loop), set())
2795+
self.assertEqual(self.all_tasks(loop), set())
27862796
self._unregister_task(task)
27872797

27882798
def test__enter_task(self):
@@ -2833,20 +2843,21 @@ def test__unregister_task(self):
28332843
task.get_loop = lambda: loop
28342844
self._register_task(task)
28352845
self._unregister_task(task)
2836-
self.assertEqual(asyncio.all_tasks(loop), set())
2846+
self.assertEqual(self.all_tasks(loop), set())
28372847

28382848
def test__unregister_task_not_registered(self):
28392849
task = mock.Mock()
28402850
loop = mock.Mock()
28412851
self._unregister_task(task)
2842-
self.assertEqual(asyncio.all_tasks(loop), set())
2852+
self.assertEqual(self.all_tasks(loop), set())
28432853

28442854

28452855
class PyIntrospectionTests(test_utils.TestCase, BaseTaskIntrospectionTests):
28462856
_register_task = staticmethod(tasks._py_register_task)
28472857
_unregister_task = staticmethod(tasks._py_unregister_task)
28482858
_enter_task = staticmethod(tasks._py_enter_task)
28492859
_leave_task = staticmethod(tasks._py_leave_task)
2860+
all_tasks = staticmethod(tasks._py_all_tasks)
28502861

28512862

28522863
@unittest.skipUnless(hasattr(tasks, '_c_register_task'),
@@ -2857,6 +2868,7 @@ class CIntrospectionTests(test_utils.TestCase, BaseTaskIntrospectionTests):
28572868
_unregister_task = staticmethod(tasks._c_unregister_task)
28582869
_enter_task = staticmethod(tasks._c_enter_task)
28592870
_leave_task = staticmethod(tasks._c_leave_task)
2871+
all_tasks = staticmethod(tasks._c_all_tasks)
28602872
else:
28612873
_register_task = _unregister_task = _enter_task = _leave_task = None
28622874

0 commit comments

Comments
 (0)