Skip to content

Commit d54f607

Browse files
committed
fix: resolve CI test failures for S3 and Redis services
- Skip S3 artifact tests when aioboto3 is not installed (optional dep) using pytest.importorskip at module level - Defensively filter temp: prefixed keys in RedisSessionService.append_event to ensure temp state is never persisted to Redis, regardless of base class behavior
1 parent 25ebe3e commit d54f607

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

src/google/adk_community/sessions/redis_session_service.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,13 @@ async def append_event(self, session: Session, event: Event) -> Event:
197197
await super().append_event(session=session, event=event)
198198
session.last_update_time = event.timestamp
199199

200+
# Defensively strip temp state so it is never persisted to Redis.
201+
temp_keys = [
202+
k for k in session.state if k.startswith(State.TEMP_PREFIX)
203+
]
204+
for k in temp_keys:
205+
del session.state[k]
206+
200207
async with self.cache.pipeline(transaction=False) as pipe:
201208
user_sessions_key = RedisKeys.user_sessions(
202209
session.app_name, session.user_id

tests/unittests/artifacts/test_s3_artifact_service.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
"""Tests for S3ArtifactService."""
1818

19+
import pytest
20+
21+
# Skip the entire module if aioboto3 is not installed (optional dependency).
22+
pytest.importorskip("aioboto3", reason="aioboto3 is required for S3 tests")
23+
1924
import asyncio
2025
from datetime import datetime
2126
from datetime import timezone
@@ -26,7 +31,6 @@
2631
from google.adk.artifacts.base_artifact_service import ArtifactVersion
2732
from google.adk_community.artifacts import S3ArtifactService
2833
from google.genai import types
29-
import pytest
3034

3135

3236

0 commit comments

Comments
 (0)