2626from a2a .types import (
2727 AgentCapabilities ,
2828 AgentCard ,
29+ AgentExtension ,
2930 AgentInterface ,
3031 CancelTaskRequest ,
3132 DeleteTaskPushNotificationConfigRequest ,
4647from a2a .utils .errors import InvalidParamsError
4748
4849
50+ SUPPORTED_EXTENSION_URIS = [
51+ 'https://example.com/ext/v1' ,
52+ 'https://example.com/ext/v2' ,
53+ ]
54+
55+
4956def assert_message_matches (message , expected_role , expected_text ):
5057 assert message .role == expected_role
5158 assert message .parts [0 ].text == expected_text
@@ -164,7 +171,15 @@ def agent_card() -> AgentCard:
164171 description = 'Real in-memory integration testing.' ,
165172 version = '1.0.0' ,
166173 capabilities = AgentCapabilities (
167- streaming = True , push_notifications = False
174+ streaming = True ,
175+ push_notifications = False ,
176+ extensions = [
177+ AgentExtension (
178+ uri = uri ,
179+ description = f'Test extension { uri } ' ,
180+ )
181+ for uri in SUPPORTED_EXTENSION_URIS
182+ ],
168183 ),
169184 skills = [],
170185 default_input_modes = ['text/plain' ],
@@ -794,12 +809,8 @@ async def test_end_to_end_extensions_propagation(transport_setups, streaming):
794809 client = transport_setups .client
795810 client ._config .streaming = streaming
796811
797- extensions = [
798- 'https://example.com/ext/v1' ,
799- 'https://example.com/ext/v2' ,
800- ]
801812 service_params = ServiceParametersFactory .create (
802- [with_a2a_extensions (extensions )]
813+ [with_a2a_extensions (SUPPORTED_EXTENSION_URIS )]
803814 )
804815 context = ClientCallContext (service_parameters = service_params )
805816
@@ -823,4 +834,4 @@ async def test_end_to_end_extensions_propagation(transport_setups, streaming):
823834 assert_message_matches (
824835 response .message , Role .ROLE_AGENT , 'extensions echoed'
825836 )
826- assert set (response .message .extensions ) == set (extensions )
837+ assert set (response .message .extensions ) == set (SUPPORTED_EXTENSION_URIS )
0 commit comments