@@ -1957,6 +1957,85 @@ def test_a2a_agent_discovery(test_app_with_a2a):
19571957 logger .info ("A2A agent discovery test passed" )
19581958
19591959
1960+ def test_a2a_agent_json_registers_routes (
1961+ mock_session_service ,
1962+ mock_artifact_service ,
1963+ mock_memory_service ,
1964+ mock_agent_loader ,
1965+ mock_eval_sets_manager ,
1966+ mock_eval_set_results_manager ,
1967+ temp_agents_dir_with_a2a ,
1968+ monkeypatch ,
1969+ ):
1970+ """A2A setup should load agent.json before later optional integrations."""
1971+ with (
1972+ patch ("signal.signal" , return_value = None ),
1973+ patch (
1974+ "google.adk.cli.fast_api.create_session_service_from_options" ,
1975+ return_value = mock_session_service ,
1976+ ),
1977+ patch (
1978+ "google.adk.cli.fast_api.create_artifact_service_from_options" ,
1979+ return_value = mock_artifact_service ,
1980+ ),
1981+ patch (
1982+ "google.adk.cli.fast_api.create_memory_service_from_options" ,
1983+ return_value = mock_memory_service ,
1984+ ),
1985+ patch (
1986+ "google.adk.cli.fast_api.AgentLoader" ,
1987+ return_value = mock_agent_loader ,
1988+ ),
1989+ patch (
1990+ "google.adk.cli.fast_api.LocalEvalSetsManager" ,
1991+ return_value = mock_eval_sets_manager ,
1992+ ),
1993+ patch (
1994+ "google.adk.cli.fast_api.LocalEvalSetResultsManager" ,
1995+ return_value = mock_eval_set_results_manager ,
1996+ ),
1997+ patch (
1998+ "google.adk.cli.fast_api._create_task_store_from_options" ,
1999+ return_value = MagicMock (),
2000+ ),
2001+ patch (
2002+ "google.adk.a2a.executor.a2a_agent_executor.A2aAgentExecutor"
2003+ ) as mock_executor ,
2004+ patch (
2005+ "a2a.server.request_handlers.DefaultRequestHandler"
2006+ ) as mock_handler ,
2007+ patch ("a2a.types.AgentCard" ) as mock_agent_card ,
2008+ patch ("a2a.server.apps.A2AStarletteApplication" ) as mock_a2a_app ,
2009+ ):
2010+ mock_executor .return_value = MagicMock ()
2011+ mock_handler .return_value = MagicMock ()
2012+ mock_agent_card .return_value = MagicMock ()
2013+ mock_a2a_app_instance = MagicMock ()
2014+ mock_a2a_app_instance .routes .return_value = []
2015+ mock_a2a_app .return_value = mock_a2a_app_instance
2016+
2017+ with monkeypatch .context () as m :
2018+ m .chdir (temp_agents_dir_with_a2a )
2019+ get_fast_api_app (
2020+ agents_dir = "." ,
2021+ web = True ,
2022+ session_service_uri = "" ,
2023+ artifact_service_uri = "" ,
2024+ memory_service_uri = "" ,
2025+ allow_origins = ["*" ],
2026+ a2a = True ,
2027+ host = "127.0.0.1" ,
2028+ port = 8000 ,
2029+ )
2030+
2031+ mock_agent_card .assert_called_once ()
2032+ mock_a2a_app .assert_called_once ()
2033+ mock_a2a_app_instance .routes .assert_called_once_with (
2034+ rpc_url = "/a2a/test_a2a_agent" ,
2035+ agent_card_url = "/a2a/test_a2a_agent/.well-known/agent-card.json" ,
2036+ )
2037+
2038+
19602039def test_a2a_request_handler_uses_push_config_store (
19612040 mock_session_service ,
19622041 mock_artifact_service ,
0 commit comments