Skip to content

Commit 79c369e

Browse files
committed
test(a2a): update executor tests to mock runner._get_or_create_session
1 parent c122214 commit 79c369e

2 files changed

Lines changed: 22 additions & 28 deletions

File tree

tests/unittests/a2a/executor/test_a2a_agent_executor.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -224,19 +224,17 @@ async def mock_run_async(**kwargs):
224224

225225
@pytest.mark.asyncio
226226
async def test_prepare_session_new_session(self):
227-
"""Test session preparation when session doesn't exist."""
227+
"""Test session preparation delegates to runner._get_or_create_session."""
228228
run_args = AgentRunRequest(
229229
user_id="test-user",
230230
session_id=None,
231231
new_message=Mock(spec=Content),
232232
run_config=Mock(spec=RunConfig),
233233
)
234234

235-
# Mock session service
236-
self.mock_runner.session_service.get_session = AsyncMock(return_value=None)
237235
mock_session = Mock()
238236
mock_session.id = "new-session-id"
239-
self.mock_runner.session_service.create_session = AsyncMock(
237+
self.mock_runner._get_or_create_session = AsyncMock(
240238
return_value=mock_session
241239
)
242240

@@ -245,10 +243,13 @@ async def test_prepare_session_new_session(self):
245243
self.mock_context, run_args, self.mock_runner
246244
)
247245

248-
# Verify session was created
246+
# Verify session was returned and run_request updated
249247
assert result == mock_session
250-
assert run_args.session_id is not None
251-
self.mock_runner.session_service.create_session.assert_called_once()
248+
assert run_args.session_id == "new-session-id"
249+
self.mock_runner._get_or_create_session.assert_called_once_with(
250+
user_id="test-user",
251+
session_id=None,
252+
)
252253

253254
@pytest.mark.asyncio
254255
async def test_prepare_session_existing_session(self):
@@ -260,10 +261,9 @@ async def test_prepare_session_existing_session(self):
260261
run_config=Mock(spec=RunConfig),
261262
)
262263

263-
# Mock session service
264264
mock_session = Mock()
265265
mock_session.id = "existing-session"
266-
self.mock_runner.session_service.get_session = AsyncMock(
266+
self.mock_runner._get_or_create_session = AsyncMock(
267267
return_value=mock_session
268268
)
269269

@@ -274,7 +274,10 @@ async def test_prepare_session_existing_session(self):
274274

275275
# Verify existing session was returned
276276
assert result == mock_session
277-
self.mock_runner.session_service.create_session.assert_not_called()
277+
self.mock_runner._get_or_create_session.assert_called_once_with(
278+
user_id="test-user",
279+
session_id="existing-session",
280+
)
278281

279282
def test_constructor_with_callable_runner(self):
280283
"""Test constructor with callable runner."""

tests/unittests/a2a/executor/test_a2a_agent_executor_impl.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ async def test_execute_success_new_task(self):
9797
new_message=Mock(spec=Content),
9898
run_config=Mock(spec=RunConfig),
9999
)
100-
# Mock session service
100+
# Mock _get_or_create_session
101101
mock_session = Mock()
102102
mock_session.id = "test-session"
103-
self.mock_runner.session_service.get_session = AsyncMock(
103+
self.mock_runner._get_or_create_session = AsyncMock(
104104
return_value=mock_session
105105
)
106106

@@ -200,10 +200,10 @@ async def test_execute_existing_task(self):
200200
run_config=Mock(spec=RunConfig),
201201
)
202202

203-
# Mock session service
203+
# Mock _get_or_create_session
204204
mock_session = Mock()
205205
mock_session.id = "test-session"
206-
self.mock_runner.session_service.get_session = AsyncMock(
206+
self.mock_runner._get_or_create_session = AsyncMock(
207207
return_value=mock_session
208208
)
209209

@@ -616,7 +616,7 @@ async def test_execute_missing_user_input(self, mock_handle_user_input):
616616
)
617617
mock_handle_user_input.return_value = missing_event
618618

619-
self.mock_runner.session_service.get_session = AsyncMock(
619+
self.mock_runner._get_or_create_session = AsyncMock(
620620
return_value=Mock(id="test-session")
621621
)
622622
self.mock_request_converter.return_value = AgentRunRequest(
@@ -638,12 +638,10 @@ async def test_execute_missing_user_input(self, mock_handle_user_input):
638638

639639
@pytest.mark.asyncio
640640
async def test_resolve_session_creates_new_session(self):
641-
"""Test that _resolve_session creates a new session if it doesn't exist."""
642-
self.mock_runner.session_service.get_session = AsyncMock(return_value=None)
643-
641+
"""Test that _resolve_session delegates to runner._get_or_create_session."""
644642
new_session = Mock()
645643
new_session.id = "new-session-id"
646-
self.mock_runner.session_service.create_session = AsyncMock(
644+
self.mock_runner._get_or_create_session = AsyncMock(
647645
return_value=new_session
648646
)
649647

@@ -656,17 +654,10 @@ async def test_resolve_session_creates_new_session(self):
656654

657655
await self.executor._resolve_session(run_request, self.mock_runner)
658656

659-
self.mock_runner.session_service.get_session.assert_called_once_with(
660-
app_name=self.mock_runner.app_name,
661-
user_id="test-user",
662-
session_id="old-session-id",
663-
config=GetSessionConfig(num_recent_events=0, after_timestamp=None),
664-
)
665-
self.mock_runner.session_service.create_session.assert_called_once_with(
666-
app_name=self.mock_runner.app_name,
657+
self.mock_runner._get_or_create_session.assert_called_once_with(
667658
user_id="test-user",
668-
state={},
669659
session_id="old-session-id",
660+
get_session_config=GetSessionConfig(num_recent_events=0, after_timestamp=None),
670661
)
671662
assert run_request.session_id == "new-session-id"
672663

0 commit comments

Comments
 (0)