@@ -556,8 +556,8 @@ def test_prepare_message_for_a2a_uses_fallback_context_id() -> None:
556556 assert result .context_id == "session-ctx-1"
557557
558558
559- def test_prepare_message_for_a2a_message_context_id_takes_precedence () -> None :
560- """Test that message.additional_properties context_id wins over the fallback ."""
559+ def test_prepare_message_for_a2a_session_context_id_takes_precedence () -> None :
560+ """Test that context_id kwarg (from session) takes precedence over additional_properties ."""
561561
562562 agent = A2AAgent (client = MagicMock (), http_client = None )
563563
@@ -569,7 +569,7 @@ def test_prepare_message_for_a2a_message_context_id_takes_precedence() -> None:
569569
570570 result = agent ._prepare_message_for_a2a (message , context_id = "session-ctx-1" )
571571
572- assert result .context_id == "explicit -ctx"
572+ assert result .context_id == "session -ctx-1 "
573573
574574
575575def test_parse_contents_from_a2a_with_data_part () -> None :
@@ -918,8 +918,8 @@ async def test_run_passes_session_service_session_id_as_context_id(mock_a2a_clie
918918
919919
920920@mark .asyncio
921- async def test_run_message_context_id_takes_precedence_over_session (mock_a2a_client : MockA2AClient ) -> None :
922- """Test that an explicit context_id on the message wins over session.service_session_id ."""
921+ async def test_run_session_context_id_takes_precedence_over_message (mock_a2a_client : MockA2AClient ) -> None :
922+ """Test that session.service_session_id takes precedence over message additional_properties context_id ."""
923923 agent = A2AAgent (name = "Test Agent" , id = "test-agent" , client = mock_a2a_client , http_client = None )
924924 mock_a2a_client .add_message_response ("msg-ctx2" , "reply" )
925925
@@ -932,7 +932,24 @@ async def test_run_message_context_id_takes_precedence_over_session(mock_a2a_cli
932932 await agent .run (messages = [message ], session = session )
933933
934934 assert mock_a2a_client .last_message is not None
935- assert mock_a2a_client .last_message .context_id == "explicit-ctx"
935+ assert mock_a2a_client .last_message .context_id == "svc-session-42"
936+
937+
938+ @mark .asyncio
939+ async def test_run_message_context_id_used_when_no_session (mock_a2a_client : MockA2AClient ) -> None :
940+ """Test that message additional_properties context_id is used as fallback when no session is provided."""
941+ agent = A2AAgent (name = "Test Agent" , id = "test-agent" , client = mock_a2a_client , http_client = None )
942+ mock_a2a_client .add_message_response ("msg-ctx3" , "reply" )
943+
944+ message = Message (
945+ role = "user" ,
946+ contents = [Content .from_text (text = "Hello" )],
947+ additional_properties = {"context_id" : "fallback-ctx" },
948+ )
949+ await agent .run (messages = [message ])
950+
951+ assert mock_a2a_client .last_message is not None
952+ assert mock_a2a_client .last_message .context_id == "fallback-ctx"
936953
937954
938955# endregion
0 commit comments