Skip to content

Commit 141c3bf

Browse files
committed
Updated test cases in test_fast_api.py
1 parent b610fe1 commit 141c3bf

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

tests/unittests/cli/test_fast_api.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
from google.genai import types
5151
from pydantic import BaseModel
5252
import pytest
53+
from google.adk.cli.fast_api import DynamicAppMap
54+
from google.adk.apps.app import App
5355

5456
# Configure logging to help diagnose server startup issues
5557
logging.basicConfig(
@@ -3807,3 +3809,64 @@ def test_finalize_agent_identity_credentials_api_call_error(test_app):
38073809

38083810
if __name__ == "__main__":
38093811
pytest.main(["-xvs", __file__])
3812+
3813+
def test_dynamic_app_map_finds_matching_app():
3814+
mock_agent_loader = MagicMock()
3815+
mock_agent_loader.list_agents.return_value = ["folder_a", "folder_b"]
3816+
3817+
def mock_load_agent(folder):
3818+
mock_app = MagicMock(spec=App)
3819+
if folder == "folder_b":
3820+
mock_app.name = "target_app"
3821+
else:
3822+
mock_app.name = "other_app"
3823+
return mock_app
3824+
3825+
mock_agent_loader.load_agent.side_effect = mock_load_agent
3826+
3827+
app_map = DynamicAppMap(mock_agent_loader)
3828+
3829+
# Should correctly map the internal app name to its physical folder
3830+
assert app_map["target_app"] == "folder_b"
3831+
3832+
def test_dynamic_app_map_fallback_when_not_found():
3833+
mock_agent_loader = MagicMock()
3834+
mock_agent_loader.list_agents.return_value = ["folder_a"]
3835+
3836+
def mock_load_agent(folder):
3837+
mock_app = MagicMock(spec=App)
3838+
mock_app.name = "other_app"
3839+
return mock_app
3840+
3841+
mock_agent_loader.load_agent.side_effect = mock_load_agent
3842+
3843+
app_map = DynamicAppMap(mock_agent_loader)
3844+
3845+
# If the app isn't found, it should return the exact string it was given
3846+
assert app_map["missing_app"] == "missing_app"
3847+
3848+
def test_dynamic_app_map_ignores_load_errors():
3849+
mock_agent_loader = MagicMock()
3850+
mock_agent_loader.list_agents.return_value = ["broken_folder", "good_folder"]
3851+
3852+
def mock_load_agent(folder):
3853+
if folder == "broken_folder":
3854+
raise ValueError("Agent is completely broken")
3855+
mock_app = MagicMock(spec=App)
3856+
mock_app.name = "good_app"
3857+
return mock_app
3858+
3859+
mock_agent_loader.load_agent.side_effect = mock_load_agent
3860+
3861+
app_map = DynamicAppMap(mock_agent_loader)
3862+
3863+
# Should ignore the ValueError from broken_folder and still find good_app
3864+
assert app_map["good_app"] == "good_folder"
3865+
3866+
def test_dynamic_app_map_is_truthy():
3867+
mock_agent_loader = MagicMock()
3868+
app_map = DynamicAppMap(mock_agent_loader)
3869+
3870+
# Must evaluate to True so that `app_map or {}` evaluates to app_map
3871+
assert bool(app_map) is True
3872+
assert (app_map or {}) is app_map

0 commit comments

Comments
 (0)