gh-143952: Fix asyncio tools to work with the new remote debugging API (#143954)

This commit is contained in:
Bartosz Sławecki 2026-01-18 01:16:12 +01:00 committed by GitHub
parent 7ca9e7ad05
commit 63cc1257db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 149 additions and 146 deletions

View File

@ -27,10 +27,10 @@ class CycleFoundException(Exception):
# ─── indexing helpers ───────────────────────────────────────────
def _format_stack_entry(elem: str|FrameInfo) -> str:
if not isinstance(elem, str):
if elem.lineno == 0 and elem.filename == "":
if elem.location.lineno == 0 and elem.filename == "":
return f"{elem.funcname}"
else:
return f"{elem.funcname} {elem.filename}:{elem.lineno}"
return f"{elem.funcname} {elem.filename}:{elem.location.lineno}"
return elem

View File

@ -4,7 +4,8 @@ from asyncio import tools
from collections import namedtuple
FrameInfo = namedtuple('FrameInfo', ['funcname', 'filename', 'lineno'])
LocationInfo = namedtuple('LocationInfo', ['lineno', 'end_lineno', 'col_offset', 'end_col_offset'], defaults=[None]*4)
FrameInfo = namedtuple('FrameInfo', ['funcname', 'filename', 'location'])
CoroInfo = namedtuple('CoroInfo', ['call_stack', 'task_name'])
TaskInfo = namedtuple('TaskInfo', ['task_id', 'task_name', 'coroutine_stack', 'awaited_by'])
AwaitedInfo = namedtuple('AwaitedInfo', ['thread_id', 'awaited_by'])
@ -33,33 +34,33 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("awaiter3", "/path/to/app.py", 130),
FrameInfo("awaiter2", "/path/to/app.py", 120),
FrameInfo("awaiter", "/path/to/app.py", 110)
FrameInfo("awaiter3", "/path/to/app.py", LocationInfo(130)),
FrameInfo("awaiter2", "/path/to/app.py", LocationInfo(120)),
FrameInfo("awaiter", "/path/to/app.py", LocationInfo(110))
],
task_name=4
),
CoroInfo(
call_stack=[
FrameInfo("awaiterB3", "/path/to/app.py", 190),
FrameInfo("awaiterB2", "/path/to/app.py", 180),
FrameInfo("awaiterB", "/path/to/app.py", 170)
FrameInfo("awaiterB3", "/path/to/app.py", LocationInfo(190)),
FrameInfo("awaiterB2", "/path/to/app.py", LocationInfo(180)),
FrameInfo("awaiterB", "/path/to/app.py", LocationInfo(170))
],
task_name=5
),
CoroInfo(
call_stack=[
FrameInfo("awaiterB3", "/path/to/app.py", 190),
FrameInfo("awaiterB2", "/path/to/app.py", 180),
FrameInfo("awaiterB", "/path/to/app.py", 170)
FrameInfo("awaiterB3", "/path/to/app.py", LocationInfo(190)),
FrameInfo("awaiterB2", "/path/to/app.py", LocationInfo(180)),
FrameInfo("awaiterB", "/path/to/app.py", LocationInfo(170))
],
task_name=6
),
CoroInfo(
call_stack=[
FrameInfo("awaiter3", "/path/to/app.py", 130),
FrameInfo("awaiter2", "/path/to/app.py", 120),
FrameInfo("awaiter", "/path/to/app.py", 110)
FrameInfo("awaiter3", "/path/to/app.py", LocationInfo(130)),
FrameInfo("awaiter2", "/path/to/app.py", LocationInfo(120)),
FrameInfo("awaiter", "/path/to/app.py", LocationInfo(110))
],
task_name=7
)
@ -72,9 +73,9 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("main", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
@ -87,9 +88,9 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("main", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
@ -102,10 +103,10 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
@ -118,10 +119,10 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
@ -134,10 +135,10 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
@ -150,10 +151,10 @@ TEST_INPUTS_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
@ -222,7 +223,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -233,7 +234,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -244,7 +245,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -266,7 +267,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -277,7 +278,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -288,7 +289,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -347,7 +348,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -358,7 +359,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -369,7 +370,7 @@ TEST_INPUTS_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -415,11 +416,11 @@ TEST_INPUTS_CYCLES_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("awaiter2", "", 0)],
call_stack=[FrameInfo("awaiter2", "", LocationInfo(0))],
task_name=4
),
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
@ -430,7 +431,7 @@ TEST_INPUTS_CYCLES_TREE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("awaiter", "", 0)],
call_stack=[FrameInfo("awaiter", "", LocationInfo(0))],
task_name=3
)
]
@ -462,9 +463,9 @@ TEST_INPUTS_CYCLES_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_b", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
@ -477,17 +478,17 @@ TEST_INPUTS_CYCLES_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_c", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_c", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_a", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_a", "", LocationInfo(0))
],
task_name=3
)
@ -500,8 +501,8 @@ TEST_INPUTS_CYCLES_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0))
],
task_name=6
)
@ -514,9 +515,9 @@ TEST_INPUTS_CYCLES_TREE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_b", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
@ -553,33 +554,33 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("awaiter3", "", 0),
FrameInfo("awaiter2", "", 0),
FrameInfo("awaiter", "", 0)
FrameInfo("awaiter3", "", LocationInfo(0)),
FrameInfo("awaiter2", "", LocationInfo(0)),
FrameInfo("awaiter", "", LocationInfo(0))
],
task_name=4
),
CoroInfo(
call_stack=[
FrameInfo("awaiter1_3", "", 0),
FrameInfo("awaiter1_2", "", 0),
FrameInfo("awaiter1", "", 0)
FrameInfo("awaiter1_3", "", LocationInfo(0)),
FrameInfo("awaiter1_2", "", LocationInfo(0)),
FrameInfo("awaiter1", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
FrameInfo("awaiter1_3", "", 0),
FrameInfo("awaiter1_2", "", 0),
FrameInfo("awaiter1", "", 0)
FrameInfo("awaiter1_3", "", LocationInfo(0)),
FrameInfo("awaiter1_2", "", LocationInfo(0)),
FrameInfo("awaiter1", "", LocationInfo(0))
],
task_name=6
),
CoroInfo(
call_stack=[
FrameInfo("awaiter3", "", 0),
FrameInfo("awaiter2", "", 0),
FrameInfo("awaiter", "", 0)
FrameInfo("awaiter3", "", LocationInfo(0)),
FrameInfo("awaiter2", "", LocationInfo(0)),
FrameInfo("awaiter", "", LocationInfo(0))
],
task_name=7
)
@ -592,9 +593,9 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("main", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
@ -607,9 +608,9 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("main", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
@ -622,10 +623,10 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
@ -638,10 +639,10 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
@ -654,10 +655,10 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
@ -670,10 +671,10 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("_aexit", "", 0),
FrameInfo("__aexit__", "", 0),
FrameInfo("blocho_caller", "", 0),
FrameInfo("bloch", "", 0)
FrameInfo("_aexit", "", LocationInfo(0)),
FrameInfo("__aexit__", "", LocationInfo(0)),
FrameInfo("blocho_caller", "", LocationInfo(0)),
FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
@ -797,7 +798,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -808,7 +809,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -819,7 +820,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main2", "", 0)],
call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
@ -841,7 +842,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -852,7 +853,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -863,7 +864,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
@ -916,7 +917,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -927,7 +928,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -938,7 +939,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
@ -979,11 +980,11 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("awaiter2", "", 0)],
call_stack=[FrameInfo("awaiter2", "", LocationInfo(0))],
task_name=4
),
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
@ -994,7 +995,7 @@ TEST_INPUTS_TABLE = [
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("awaiter", "", 0)],
call_stack=[FrameInfo("awaiter", "", LocationInfo(0))],
task_name=3
)
]
@ -1033,9 +1034,9 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_b", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
@ -1048,17 +1049,17 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_c", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_c", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_a", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_a", "", LocationInfo(0))
],
task_name=3
)
@ -1071,8 +1072,8 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0))
],
task_name=6
)
@ -1085,9 +1086,9 @@ TEST_INPUTS_TABLE = [
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("nested", "", 0),
FrameInfo("nested", "", 0),
FrameInfo("task_b", "", 0)
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("nested", "", LocationInfo(0)),
FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
@ -1290,7 +1291,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
@ -1301,7 +1302,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
@ -1331,7 +1332,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
@ -1342,7 +1343,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
@ -1379,7 +1380,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
@ -1390,7 +1391,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("main", "", 0)],
call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
@ -1417,11 +1418,11 @@ class TestAsyncioToolsBasic(unittest.TestCase):
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("c1", "", 0),
FrameInfo("c2", "", 0),
FrameInfo("c3", "", 0),
FrameInfo("c4", "", 0),
FrameInfo("c5", "", 0)
FrameInfo("c1", "", LocationInfo(0)),
FrameInfo("c2", "", LocationInfo(0)),
FrameInfo("c3", "", LocationInfo(0)),
FrameInfo("c4", "", LocationInfo(0)),
FrameInfo("c5", "", LocationInfo(0))
],
task_name=11
)
@ -1461,7 +1462,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("call1", "", 0)],
call_stack=[FrameInfo("call1", "", LocationInfo(0))],
task_name=2
)
]
@ -1472,7 +1473,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("call2", "", 0)],
call_stack=[FrameInfo("call2", "", LocationInfo(0))],
task_name=3
)
]
@ -1483,11 +1484,11 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("call3", "", 0)],
call_stack=[FrameInfo("call3", "", LocationInfo(0))],
task_name=1
),
CoroInfo(
call_stack=[FrameInfo("call4", "", 0)],
call_stack=[FrameInfo("call4", "", LocationInfo(0))],
task_name=2
)
]
@ -1511,7 +1512,7 @@ class TestAsyncioToolsBasic(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("foo", "", 0)],
call_stack=[FrameInfo("foo", "", LocationInfo(0))],
task_name=2
)
]
@ -1555,7 +1556,7 @@ class TestAsyncioToolsEdgeCases(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("loopback", "", 0)],
call_stack=[FrameInfo("loopback", "", LocationInfo(0))],
task_name=1
)
]
@ -1579,7 +1580,7 @@ class TestAsyncioToolsEdgeCases(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("coro", "", 0)],
call_stack=[FrameInfo("coro", "", LocationInfo(0))],
task_name=999
)
]
@ -1603,11 +1604,11 @@ class TestAsyncioToolsEdgeCases(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("frameA", "", 0)],
call_stack=[FrameInfo("frameA", "", LocationInfo(0))],
task_name=2
),
CoroInfo(
call_stack=[FrameInfo("frameA", "", 0)],
call_stack=[FrameInfo("frameA", "", LocationInfo(0))],
task_name=3
)
]
@ -1651,7 +1652,7 @@ class TestAsyncioToolsEdgeCases(unittest.TestCase):
coroutine_stack=[],
awaited_by=[
CoroInfo(
call_stack=[FrameInfo("f1", "", 0)],
call_stack=[FrameInfo("f1", "", LocationInfo(0))],
task_name=2
)
]
@ -1682,8 +1683,8 @@ class TestAsyncioToolsEdgeCases(unittest.TestCase):
awaited_by=[
CoroInfo(
call_stack=[
FrameInfo("f1", "", 0),
FrameInfo("f2", "", 0)
FrameInfo("f1", "", LocationInfo(0)),
FrameInfo("f2", "", LocationInfo(0))
],
task_name=2
)

View File

@ -0,0 +1,2 @@
Fixed :mod:`asyncio` debugging tools to work with new remote debugging API.
Patch by Bartosz Sławecki.