From 4c1febe15a63b9e4213e5c1e53924e72fa50e396 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:48:35 +0000 Subject: [PATCH] test(a2a): cover registry version resolution; exclude optional-import guards from coverage --- litellm/llms/a2a/chat/transformation.py | 4 +-- .../a2a/chat/test_a2a_chat_transformation.py | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/litellm/llms/a2a/chat/transformation.py b/litellm/llms/a2a/chat/transformation.py index 6cc185c4fdf..a76b4f864c8 100644 --- a/litellm/llms/a2a/chat/transformation.py +++ b/litellm/llms/a2a/chat/transformation.py @@ -266,7 +266,7 @@ class A2AConfig(BaseConfig): from litellm.proxy.agent_endpoints.agent_registry import ( global_agent_registry, ) - except ImportError: + except ImportError: # pragma: no cover - registry only exists in a proxy context return None agent = global_agent_registry.get_agent_by_name(agent_name) @@ -288,7 +288,7 @@ class A2AConfig(BaseConfig): to_core_send_message_request, ) from a2a.compat.v0_3.types import MessageSendParams, SendMessageRequest - except ImportError as e: + except ImportError as e: # pragma: no cover - a2a-sdk is an optional dependency raise A2AError( status_code=500, message=( diff --git a/tests/test_litellm/llms/a2a/chat/test_a2a_chat_transformation.py b/tests/test_litellm/llms/a2a/chat/test_a2a_chat_transformation.py index b53188f31fb..c79ffab8976 100644 --- a/tests/test_litellm/llms/a2a/chat/test_a2a_chat_transformation.py +++ b/tests/test_litellm/llms/a2a/chat/test_a2a_chat_transformation.py @@ -99,6 +99,31 @@ def test_transform_request_reads_pinned_version_from_registry(): global_agent_registry.agent_list = original_agents +def test_transform_request_registry_agent_without_pinned_version_uses_0_3(): + """An agent whose card omits ``protocolVersion`` keeps the legacy 0.3 method.""" + try: + from litellm.proxy.agent_endpoints.agent_registry import global_agent_registry + from litellm.types.agents import AgentResponse + except ImportError: + import pytest + + pytest.skip("Registry not available (not in proxy context)") + + agent = AgentResponse( + agent_id="legacy-id", + agent_name="legacy-agent", + agent_card_params={"url": "http://agent.example.com:9999"}, + litellm_params={}, + ) + original_agents = global_agent_registry.agent_list.copy() + global_agent_registry.register_agent(agent) + try: + request = A2AConfig().transform_request("legacy-agent", _MESSAGES, {}, {}, {}) + assert request["method"] == "message/send" + finally: + global_agent_registry.agent_list = original_agents + + def test_transform_response_extracts_text_from_v1_message(): """Regression for #32609: text must be extracted from a 1.0 protobuf-JSON message result whose parts carry no ``kind`` field."""