MCPcopy Index your code
hub / github.com/google/adk-python / test_run_async

Function test_run_async

tests/unittests/agents/test_parallel_agent.py:78–121  ·  view source on GitHub ↗
(request: pytest.FixtureRequest, is_resumable: bool)

Source from the content-addressed store, hash-verified

76@pytest.mark.asyncio
77@pytest.mark.parametrize('is_resumable', [True, False])
78async def test_run_async(request: pytest.FixtureRequest, is_resumable: bool):
79 agent1 = _TestingAgent(
80 name=f'{request.function.__name__}_test_agent_1',
81 delay=0.5,
82 )
83 agent2 = _TestingAgent(name=f'{request.function.__name__}_test_agent_2')
84 parallel_agent = ParallelAgent(
85 name=f'{request.function.__name__}_test_parallel_agent',
86 sub_agents=[
87 agent1,
88 agent2,
89 ],
90 )
91 parent_ctx = await _create_parent_invocation_context(
92 request.function.__name__, parallel_agent, is_resumable=is_resumable
93 )
94 events = [e async for e in parallel_agent.run_async(parent_ctx)]
95
96 if is_resumable:
97 assert len(events) == 4
98
99 assert events[0].author == parallel_agent.name
100 assert not events[0].actions.end_of_agent
101
102 # agent2 generates an event first, then agent1. Because they run in parallel
103 # and agent1 has a delay.
104 assert events[1].author == agent2.name
105 assert events[2].author == agent1.name
106 assert events[1].branch == f'{parallel_agent.name}.{agent2.name}'
107 assert events[2].branch == f'{parallel_agent.name}.{agent1.name}'
108 assert events[1].content.parts[0].text == f'Hello, async {agent2.name}!'
109 assert events[2].content.parts[0].text == f'Hello, async {agent1.name}!'
110
111 assert events[3].author == parallel_agent.name
112 assert events[3].actions.end_of_agent
113 else:
114 assert len(events) == 2
115
116 assert events[0].author == agent2.name
117 assert events[1].author == agent1.name
118 assert events[0].branch == f'{parallel_agent.name}.{agent2.name}'
119 assert events[1].branch == f'{parallel_agent.name}.{agent1.name}'
120 assert events[0].content.parts[0].text == f'Hello, async {agent2.name}!'
121 assert events[1].content.parts[0].text == f'Hello, async {agent1.name}!'
122
123
124@pytest.mark.asyncio

Callers

nothing calls this directly

Calls 4

ParallelAgentClass · 0.90
_TestingAgentClass · 0.70
run_asyncMethod · 0.45

Tested by

no test coverage detected