From b6d1120eeb523250289d2b9b108d4aedebb14348 Mon Sep 17 00:00:00 2001 From: Sehlani042 <257166922+Sehlani042@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:49:04 +0800 Subject: [PATCH] fix(ci): keep ADK sample smoke tests offline-safe --- src/google/adk/models/lite_llm.py | 26 ++++++++++++++------------ tests/unittests/test_samples.py | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 2e4cf65f32..d57608ca63 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -2716,12 +2716,13 @@ def _finalize_tool_call_response( thought_parts=list(reasoning_parts) if reasoning_parts else None, ) mapped_finish_reason = _map_finish_reason(finish_reason) - llm_response.finish_reason = mapped_finish_reason - if mapped_finish_reason != types.FinishReason.STOP: - llm_response.error_code = mapped_finish_reason - llm_response.error_message = _finish_reason_to_error_message( - mapped_finish_reason - ) + if mapped_finish_reason is not None: + llm_response.finish_reason = mapped_finish_reason + if mapped_finish_reason != types.FinishReason.STOP: + llm_response.error_code = mapped_finish_reason + llm_response.error_message = _finish_reason_to_error_message( + mapped_finish_reason + ) return llm_response def _finalize_text_response( @@ -2737,12 +2738,13 @@ def _finalize_text_response( thought_parts=list(reasoning_parts) if reasoning_parts else None, ) mapped_finish_reason = _map_finish_reason(finish_reason) - llm_response.finish_reason = mapped_finish_reason - if mapped_finish_reason != types.FinishReason.STOP: - llm_response.error_code = mapped_finish_reason - llm_response.error_message = _finish_reason_to_error_message( - mapped_finish_reason - ) + if mapped_finish_reason is not None: + llm_response.finish_reason = mapped_finish_reason + if mapped_finish_reason != types.FinishReason.STOP: + llm_response.error_code = mapped_finish_reason + llm_response.error_message = _finish_reason_to_error_message( + mapped_finish_reason + ) return llm_response def _reset_stream_buffers() -> None: diff --git a/tests/unittests/test_samples.py b/tests/unittests/test_samples.py index 59beb5a750..0eac8a765b 100644 --- a/tests/unittests/test_samples.py +++ b/tests/unittests/test_samples.py @@ -14,7 +14,6 @@ from __future__ import annotations -import json import os from pathlib import Path import sys @@ -23,7 +22,6 @@ from google.adk.apps.app import App from google.adk.cli.agent_test_runner import test_agent_replay as _test_agent_replay from google.adk.cli.utils.agent_loader import AgentLoader -from google.genai import types import pytest CONTRIBUTING_DIR = Path(__file__).parent.parent.parent / "contributing" @@ -126,6 +124,20 @@ def test_sample(sample_dir: Path, test_file: Path, monkeypatch): "adk_team/adk_answering_agent/gemini_assistant": ( "sub-agent of adk_answering_agent, not independently loadable" ), + "a2a/a2a_auth/remote_a2a/bigquery_agent": ( + "requires Google Cloud ADC at import" + ), + "integrations/bigquery": "requires Google Cloud ADC at import", + "integrations/bigquery_mcp": "requires Google Cloud ADC at import", + "integrations/bigtable": "requires Google Cloud ADC at import", + "integrations/data_agent": "requires Google Cloud ADC at import", + "integrations/gcs": "requires Google Cloud ADC at import", + "integrations/gcs_admin": "requires Google Cloud ADC at import", + "integrations/google_api": "requires Google Cloud ADC at import", + "integrations/pubsub": "requires Google Cloud ADC at import", + "integrations/spanner": "requires Google Cloud ADC at import", + "integrations/spanner_admin": "requires Google Cloud ADC at import", + "integrations/spanner_rag_agent": "requires Google Cloud ADC at import", "integrations/oauth_calendar_agent": ( "fetches the Calendar API (calendar v3) discovery doc at import" ),