@@ -800,10 +800,15 @@ def test_update_extension_header_no_initial_headers(
800800 )
801801 http_kwargs = {}
802802 result_kwargs = client ._update_extension_header (http_kwargs )
803- actual_extensions = set (
804- result_kwargs ['headers' ][HTTP_EXTENSION_HEADER ].split (', ' )
805- )
806- expected_extensions = {'test_extension_1' , 'test_extension_2' }
803+ header_value = result_kwargs ['headers' ][HTTP_EXTENSION_HEADER ]
804+ actual_extensions_list = [e .strip () for e in header_value .split (',' )]
805+ actual_extensions = set (actual_extensions_list )
806+
807+ expected_extensions = {
808+ 'test_extension_1' ,
809+ 'test_extension_2' ,
810+ }
811+ assert len (actual_extensions_list ) == 2
807812 assert actual_extensions == expected_extensions
808813
809814 def test_update_extension_header_with_existing_other_headers (
@@ -823,25 +828,34 @@ def test_update_extension_header_with_existing_other_headers(
823828 )
824829 assert result_kwargs ['headers' ]['X_Other' ] == 'Test'
825830
831+ @pytest .mark .parametrize (
832+ 'existing_header, expected_count' ,
833+ [
834+ ('test_extension_2, test_extension_3' , 3 ),
835+ ('test_extension_2,test_extension_3' , 3 ),
836+ ('test_extension_3' , 3 ),
837+ ],
838+ )
826839 def test_update_extension_header_merge_with_existing_extensions (
827- self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
840+ self ,
841+ mock_httpx_client : AsyncMock ,
842+ mock_agent_card : MagicMock ,
843+ existing_header : str ,
844+ expected_count : int ,
828845 ):
829846 extensions = ['test_extension_1' , 'test_extension_2' ]
830847 client = JsonRpcTransport (
831848 httpx_client = mock_httpx_client ,
832849 agent_card = mock_agent_card ,
833850 client_extensions = extensions ,
834851 )
835- http_kwargs = {
836- 'headers' : {
837- HTTP_EXTENSION_HEADER : 'test_extension_2, test_extension_3'
838- }
839- }
852+ http_kwargs = {'headers' : {HTTP_EXTENSION_HEADER : existing_header }}
840853 result_kwargs = client ._update_extension_header (http_kwargs )
841- actual_extensions_list = result_kwargs [ 'headers' ][
842- HTTP_EXTENSION_HEADER
843- ]. split (', ' )
854+
855+ header_value = result_kwargs [ 'headers' ][ HTTP_EXTENSION_HEADER ]
856+ actual_extensions_list = [ e . strip () for e in header_value . split (',' )]
844857 actual_extensions = set (actual_extensions_list )
858+
845859 expected_extensions = {
846860 'test_extension_1' ,
847861 'test_extension_2' ,
@@ -853,7 +867,11 @@ def test_update_extension_header_merge_with_existing_extensions(
853867 def test_update_extension_header_no_client_extensions (
854868 self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
855869 ):
856- client = JsonRpcTransport (mock_httpx_client , None , mock_agent_card )
870+ client = JsonRpcTransport (
871+ httpx_client = mock_httpx_client ,
872+ agent_card = mock_agent_card ,
873+ client_extensions = None ,
874+ )
857875 http_kwargs = {'headers' : {'X_Other' : 'Test' }}
858876 result_kwargs = client ._update_extension_header (http_kwargs )
859877 assert HTTP_EXTENSION_HEADER not in result_kwargs ['headers' ]
@@ -862,7 +880,11 @@ def test_update_extension_header_no_client_extensions(
862880 def test_update_extension_header_empty_client_extensions (
863881 self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
864882 ):
865- client = JsonRpcTransport (mock_httpx_client , [], mock_agent_card )
883+ client = JsonRpcTransport (
884+ httpx_client = mock_httpx_client ,
885+ agent_card = mock_agent_card ,
886+ client_extensions = [],
887+ )
866888 http_kwargs = {'headers' : {'X_Other' : 'Test' }}
867889 result_kwargs = client ._update_extension_header (http_kwargs )
868890 assert HTTP_EXTENSION_HEADER not in result_kwargs ['headers' ]
@@ -876,8 +898,8 @@ async def test_send_message_with_extensions(
876898 extensions = ['test_extension_1' , 'test_extension_2' ]
877899 client = JsonRpcTransport (
878900 httpx_client = mock_httpx_client ,
879- client_extensions = extensions ,
880901 agent_card = mock_agent_card ,
902+ client_extensions = extensions ,
881903 )
882904 params = MessageSendParams (
883905 message = create_text_message_object (content = 'Hello' )
@@ -898,10 +920,18 @@ async def test_send_message_with_extensions(
898920
899921 mock_httpx_client .post .assert_called_once ()
900922 _ , mock_kwargs = mock_httpx_client .post .call_args
923+
901924 headers = mock_kwargs .get ('headers' , {})
902925 assert HTTP_EXTENSION_HEADER in headers
903- actual_extensions = set (headers [HTTP_EXTENSION_HEADER ].split (', ' ))
904- expected_extensions = {'test_extension_1' , 'test_extension_2' }
926+ header_value = headers [HTTP_EXTENSION_HEADER ]
927+ actual_extensions_list = [e .strip () for e in header_value .split (',' )]
928+ actual_extensions = set (actual_extensions_list )
929+
930+ expected_extensions = {
931+ 'test_extension_1' ,
932+ 'test_extension_2' ,
933+ }
934+ assert len (actual_extensions_list ) == 2
905935 assert actual_extensions == expected_extensions
906936
907937 @pytest .mark .asyncio
@@ -916,8 +946,8 @@ async def test_send_message_streaming_with_extensions(
916946 extensions = ['test_extension' ]
917947 client = JsonRpcTransport (
918948 httpx_client = mock_httpx_client ,
919- client_extensions = extensions ,
920949 agent_card = mock_agent_card ,
950+ client_extensions = extensions ,
921951 )
922952 params = MessageSendParams (
923953 message = create_text_message_object (content = 'Hello stream' )
0 commit comments