From 1dec6c7b1ef7ecc0c267152ca027d4dd694d8fb6 Mon Sep 17 00:00:00 2001 From: soundTricker Date: Thu, 26 Jun 2025 09:59:25 +0900 Subject: [PATCH 1/4] fix: raise ValueError when sessionId and userId are incorrect combinetion #1653 --- .../adk/sessions/vertex_ai_session_service.py | 5 ++++- .../sessions/test_vertex_ai_session_service.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 06a904c89..6a43f3fbc 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -178,13 +178,16 @@ async def get_session( ) get_session_api_response = _convert_api_response(get_session_api_response) + if get_session_api_response["userId"] != user_id: + raise ValueError(f'Session not found: {session_id}') + session_id = get_session_api_response['name'].split('/')[-1] update_timestamp = isoparse( get_session_api_response['updateTime'] ).timestamp() session = Session( app_name=str(app_name), - user_id=str(user_id), + user_id=str(get_session_api_response["userId"]), id=str(session_id), state=get_session_api_response.get('sessionState', {}), last_update_time=update_timestamp, diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 6a9e0b46a..9ceddd374 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -291,6 +291,20 @@ async def test_get_empty_session(agent_engine_id): ) assert str(excinfo.value) == 'Session not found: 0' +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +@pytest.mark.parametrize('agent_engine_id', [None, '123']) +async def test_get_another_user_session(agent_engine_id): + if agent_engine_id: + session_service = mock_vertex_ai_session_service(agent_engine_id) + else: + session_service = mock_vertex_ai_session_service() + with pytest.raises(ValueError) as excinfo: + await session_service.get_session( + app_name='123', user_id='user2', session_id='1' + ) + assert str(excinfo.value) == 'Session not found: 1' + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') From b9777dde927f6dc05d3c10602deea8070836ee11 Mon Sep 17 00:00:00 2001 From: soundTricker Date: Thu, 26 Jun 2025 13:20:53 +0900 Subject: [PATCH 2/4] fix: by lint --- src/google/adk/sessions/vertex_ai_session_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 6a43f3fbc..25912c8fd 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -178,7 +178,7 @@ async def get_session( ) get_session_api_response = _convert_api_response(get_session_api_response) - if get_session_api_response["userId"] != user_id: + if get_session_api_response['userId'] != user_id: raise ValueError(f'Session not found: {session_id}') session_id = get_session_api_response['name'].split('/')[-1] @@ -187,7 +187,7 @@ async def get_session( ).timestamp() session = Session( app_name=str(app_name), - user_id=str(get_session_api_response["userId"]), + user_id=str(get_session_api_response['userId']), id=str(session_id), state=get_session_api_response.get('sessionState', {}), last_update_time=update_timestamp, From 17f6ae66b80ea338bb872a6bef690f6e00cd6e83 Mon Sep 17 00:00:00 2001 From: soundTricker Date: Thu, 26 Jun 2025 13:22:36 +0900 Subject: [PATCH 3/4] fix: by lint --- src/google/adk/sessions/vertex_ai_session_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 25912c8fd..163b72a2e 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -187,7 +187,7 @@ async def get_session( ).timestamp() session = Session( app_name=str(app_name), - user_id=str(get_session_api_response['userId']), + user_id=str(user_id), id=str(session_id), state=get_session_api_response.get('sessionState', {}), last_update_time=update_timestamp, From 9dc3d81798776f00e90a62e9262c540ef40790f7 Mon Sep 17 00:00:00 2001 From: soundTricker Date: Thu, 26 Jun 2025 13:27:42 +0900 Subject: [PATCH 4/4] fix: by lint --- src/google/adk/sessions/vertex_ai_session_service.py | 2 +- tests/unittests/sessions/test_vertex_ai_session_service.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 163b72a2e..6628eb95f 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -179,7 +179,7 @@ async def get_session( get_session_api_response = _convert_api_response(get_session_api_response) if get_session_api_response['userId'] != user_id: - raise ValueError(f'Session not found: {session_id}') + raise ValueError(f'Session not found: {session_id}') session_id = get_session_api_response['name'].split('/')[-1] update_timestamp = isoparse( diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 9ceddd374..52fa42c91 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -291,6 +291,7 @@ async def test_get_empty_session(agent_engine_id): ) assert str(excinfo.value) == 'Session not found: 0' + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123'])