Skip to content

Commit 3fdbd79

Browse files
committed
test(a2a): update executor tests to reflect direct session_service calls
1 parent b8758bf commit 3fdbd79

3 files changed

Lines changed: 38 additions & 25 deletions

File tree

tests/unittests/a2a/executor/test_a2a_agent_executor.py

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

225225
@pytest.mark.asyncio
226226
async def test_prepare_session_new_session(self):
227-
"""Test session preparation delegates to runner._get_or_create_session."""
227+
"""Test session preparation creates a new session when none is found."""
228228
run_args = AgentRunRequest(
229229
user_id="test-user",
230-
session_id=None,
230+
session_id="new-session-id",
231231
new_message=Mock(spec=Content),
232232
run_config=Mock(spec=RunConfig),
233233
)
234234

235235
mock_session = Mock()
236236
mock_session.id = "new-session-id"
237-
self.mock_runner._get_or_create_session = AsyncMock(
237+
self.mock_runner.session_service.get_session = AsyncMock(return_value=None)
238+
self.mock_runner.session_service.create_session = AsyncMock(
238239
return_value=mock_session
239240
)
240241

@@ -243,17 +244,23 @@ async def test_prepare_session_new_session(self):
243244
self.mock_context, run_args, self.mock_runner
244245
)
245246

246-
# Verify session was returned and run_request updated
247+
# Verify session was created and run_request updated
247248
assert result == mock_session
248249
assert run_args.session_id == "new-session-id"
249-
self.mock_runner._get_or_create_session.assert_called_once_with(
250+
self.mock_runner.session_service.get_session.assert_called_once_with(
251+
app_name="test-app",
250252
user_id="test-user",
251-
session_id=None,
253+
session_id="new-session-id",
254+
)
255+
self.mock_runner.session_service.create_session.assert_called_once_with(
256+
app_name="test-app",
257+
user_id="test-user",
258+
session_id="new-session-id",
252259
)
253260

254261
@pytest.mark.asyncio
255262
async def test_prepare_session_existing_session(self):
256-
"""Test session preparation when session exists."""
263+
"""Test session preparation returns existing session without creating one."""
257264
run_args = AgentRunRequest(
258265
user_id="test-user",
259266
session_id="existing-session",
@@ -263,21 +270,24 @@ async def test_prepare_session_existing_session(self):
263270

264271
mock_session = Mock()
265272
mock_session.id = "existing-session"
266-
self.mock_runner._get_or_create_session = AsyncMock(
273+
self.mock_runner.session_service.get_session = AsyncMock(
267274
return_value=mock_session
268275
)
276+
self.mock_runner.session_service.create_session = AsyncMock()
269277

270278
# Execute
271279
result = await self.executor._prepare_session(
272280
self.mock_context, run_args, self.mock_runner
273281
)
274282

275-
# Verify existing session was returned
283+
# Verify existing session was returned without creating a new one
276284
assert result == mock_session
277-
self.mock_runner._get_or_create_session.assert_called_once_with(
285+
self.mock_runner.session_service.get_session.assert_called_once_with(
286+
app_name="test-app",
278287
user_id="test-user",
279288
session_id="existing-session",
280289
)
290+
self.mock_runner.session_service.create_session.assert_not_called()
281291

282292
def test_constructor_with_callable_runner(self):
283293
"""Test constructor with callable runner."""

tests/unittests/a2a/executor/test_a2a_agent_executor_impl.py

Lines changed: 18 additions & 13 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 _get_or_create_session
100+
# Mock session lookup returning existing session
101101
mock_session = Mock()
102102
mock_session.id = "test-session"
103-
self.mock_runner._get_or_create_session = AsyncMock(
103+
self.mock_runner.session_service.get_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 _get_or_create_session
203+
# Mock session lookup returning existing session
204204
mock_session = Mock()
205205
mock_session.id = "test-session"
206-
self.mock_runner._get_or_create_session = AsyncMock(
206+
self.mock_runner.session_service.get_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._get_or_create_session = AsyncMock(
619+
self.mock_runner.session_service.get_session = AsyncMock(
620620
return_value=Mock(id="test-session")
621621
)
622622
self.mock_request_converter.return_value = AgentRunRequest(
@@ -638,28 +638,33 @@ 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 delegates to runner._get_or_create_session."""
641+
"""Test that _resolve_session creates a session when none is found."""
642642
new_session = Mock()
643643
new_session.id = "new-session-id"
644-
self.mock_runner._get_or_create_session = AsyncMock(
644+
self.mock_runner.session_service.get_session = AsyncMock(return_value=None)
645+
self.mock_runner.session_service.create_session = AsyncMock(
645646
return_value=new_session
646647
)
647648

648649
run_request = AgentRunRequest(
649650
user_id="test-user",
650-
session_id="old-session-id",
651+
session_id="new-session-id",
651652
new_message=Mock(spec=Content),
652653
run_config=Mock(spec=RunConfig),
653654
)
654655

655656
await self.executor._resolve_session(run_request, self.mock_runner)
656657

657-
self.mock_runner._get_or_create_session.assert_called_once_with(
658+
self.mock_runner.session_service.get_session.assert_called_once_with(
659+
app_name="test-app",
658660
user_id="test-user",
659-
session_id="old-session-id",
660-
get_session_config=GetSessionConfig(
661-
num_recent_events=0, after_timestamp=None
662-
),
661+
session_id="new-session-id",
662+
config=GetSessionConfig(num_recent_events=0, after_timestamp=None),
663+
)
664+
self.mock_runner.session_service.create_session.assert_called_once_with(
665+
app_name="test-app",
666+
user_id="test-user",
667+
session_id="new-session-id",
663668
)
664669
assert run_request.session_id == "new-session-id"
665670

tests/unittests/a2a/utils/test_agent_to_a2a.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ async def test_create_runner_function_creates_runner_correctly(
327327
session_service=mock_runner_class.call_args[1]["session_service"],
328328
memory_service=mock_runner_class.call_args[1]["memory_service"],
329329
credential_service=mock_runner_class.call_args[1]["credential_service"],
330-
auto_create_session=True,
331330
)
332331

333332
# Verify the services are of the correct types
@@ -392,7 +391,6 @@ async def test_create_runner_function_with_agent_without_name(
392391
session_service=mock_runner_class.call_args[1]["session_service"],
393392
memory_service=mock_runner_class.call_args[1]["memory_service"],
394393
credential_service=mock_runner_class.call_args[1]["credential_service"],
395-
auto_create_session=True,
396394
)
397395

398396
@patch("google.adk.a2a.utils.agent_to_a2a.A2aAgentExecutor")

0 commit comments

Comments
 (0)