(request: pytest.FixtureRequest, is_resumable: bool)
| 76 | @pytest.mark.asyncio |
| 77 | @pytest.mark.parametrize('is_resumable', [True, False]) |
| 78 | async 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 |
nothing calls this directly
no test coverage detected