1111from a2a .server .request_handlers .request_handler import RequestHandler
1212from a2a .types .a2a_pb2 import (
1313 AgentCard ,
14+ AgentCapabilities ,
15+ AgentInterface ,
1416 Message as Message10 ,
1517 Part as Part10 ,
1618 Role as Role10 ,
1719 Task as Task10 ,
1820 TaskStatus as TaskStatus10 ,
1921 TaskState as TaskState10 ,
2022)
23+
2124from a2a .compat .v0_3 import a2a_v0_3_pb2
2225
2326
@@ -44,15 +47,21 @@ def mock_handler():
4447
4548@pytest .fixture
4649def test_app (mock_handler ):
47- mock_agent_card = MagicMock (spec = AgentCard )
48- mock_agent_card .url = 'http://mockurl.com'
49- # Set up capabilities.streaming to avoid validation issues
50- mock_agent_card .capabilities = MagicMock ()
51- mock_agent_card .capabilities .streaming = False
52- mock_agent_card .capabilities .push_notifications = True
53- mock_agent_card .capabilities .extended_agent_card = True
50+ agent_card = AgentCard (
51+ name = 'TestAgent' ,
52+ description = 'Test Description' ,
53+ version = '1.0.0' ,
54+ capabilities = AgentCapabilities (
55+ streaming = False , push_notifications = True , extended_agent_card = True
56+ ),
57+ )
58+ interface = agent_card .supported_interfaces .add ()
59+ interface .url = 'http://mockurl.com'
60+ interface .protocol_binding = 'jsonrpc'
61+ interface .protocol_version = '0.3'
62+
5463 jsonrpc_routes = create_jsonrpc_routes (
55- agent_card = mock_agent_card ,
64+ agent_card = agent_card ,
5665 request_handler = mock_handler ,
5766 enable_v0_3_compat = True ,
5867 rpc_url = '/' ,
@@ -111,3 +120,25 @@ def test_get_task_v03_compat(
111120 assert 'result' in data
112121 assert data ['result' ]['id' ] == 'test_task_id'
113122 assert data ['result' ]['status' ]['state' ] == 'completed'
123+
124+
125+ def test_get_extended_agent_card_v03_compat (
126+ client : TestClient ,
127+ ) -> None :
128+ """Test that the v0.3 method name 'agent/getAuthenticatedExtendedCard' is correctly routed."""
129+ request_payload = {
130+ 'jsonrpc' : '2.0' ,
131+ 'id' : '3' ,
132+ 'method' : 'agent/getAuthenticatedExtendedCard' ,
133+ 'params' : {},
134+ }
135+
136+ response = client .post ('/' , json = request_payload )
137+ assert response .status_code == 200
138+ data = response .json ()
139+
140+ assert data ['jsonrpc' ] == '2.0'
141+ assert data ['id' ] == '3'
142+ assert 'result' in data
143+ # The result should be a v0.3 AgentCard
144+ assert 'supportsAuthenticatedExtendedCard' in data ['result' ]
0 commit comments