Skip to content

Commit 6f6f7ca

Browse files
committed
🧪 modify test_agent_service.py
1 parent cb5e33e commit 6f6f7ca

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

‎test/backend/services/test_agent_service.py‎

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2898,3 +2898,125 @@ def fake_unregister(task_id):
28982898
assert any("memory_search" in s and "<MEM_FAILED>" in s for s in out)
28992899
assert "data: fb1\n\n" in out
29002900
assert called["unregistered"]
2901+
2902+
2903+
@pytest.mark.asyncio
2904+
async def test_list_all_agent_info_impl_with_disabled_agents():
2905+
"""
2906+
Test list_all_agent_info_impl with disabled agents.
2907+
2908+
This test verifies that:
2909+
1. Agents with enabled=False are skipped and not included in the result
2910+
2. Only enabled agents are processed and returned
2911+
"""
2912+
# Setup mock agents with mixed enabled/disabled states
2913+
mock_agents = [
2914+
{
2915+
"agent_id": 1,
2916+
"name": "Enabled Agent 1",
2917+
"display_name": "Display Enabled Agent 1",
2918+
"description": "First enabled agent",
2919+
"enabled": True
2920+
},
2921+
{
2922+
"agent_id": 2,
2923+
"name": "Disabled Agent",
2924+
"display_name": "Display Disabled Agent",
2925+
"description": "Disabled agent that should be skipped",
2926+
"enabled": False
2927+
},
2928+
{
2929+
"agent_id": 3,
2930+
"name": "Enabled Agent 2",
2931+
"display_name": "Display Enabled Agent 2",
2932+
"description": "Second enabled agent",
2933+
"enabled": True
2934+
}
2935+
]
2936+
2937+
# Setup mock tools
2938+
mock_tools = [
2939+
{"tool_id": 101, "name": "Tool 1"},
2940+
{"tool_id": 102, "name": "Tool 2"}
2941+
]
2942+
2943+
with patch('backend.services.agent_service.query_all_agent_info_by_tenant_id') as mock_query_agents, \
2944+
patch('backend.services.agent_service.search_tools_for_sub_agent') as mock_search_tools, \
2945+
patch('backend.services.agent_service.check_tool_is_available') as mock_check_tools:
2946+
# Configure mocks
2947+
mock_query_agents.return_value = mock_agents
2948+
mock_search_tools.return_value = mock_tools
2949+
mock_check_tools.return_value = [True, True] # All tools are available
2950+
2951+
# Execute
2952+
result = await list_all_agent_info_impl(tenant_id="test_tenant")
2953+
2954+
# Assert - only enabled agents should be in the result
2955+
assert len(result) == 2
2956+
assert result[0]["agent_id"] == 1
2957+
assert result[0]["name"] == "Enabled Agent 1"
2958+
assert result[0]["display_name"] == "Display Enabled Agent 1"
2959+
assert result[0]["is_available"] == True
2960+
2961+
assert result[1]["agent_id"] == 3
2962+
assert result[1]["name"] == "Enabled Agent 2"
2963+
assert result[1]["display_name"] == "Display Enabled Agent 2"
2964+
assert result[1]["is_available"] == True
2965+
2966+
# Verify mock calls
2967+
mock_query_agents.assert_called_once_with(tenant_id="test_tenant")
2968+
# search_tools_for_sub_agent should only be called for enabled agents (2 calls, not 3)
2969+
assert mock_search_tools.call_count == 2
2970+
mock_search_tools.assert_has_calls([
2971+
call(agent_id=1, tenant_id="test_tenant"),
2972+
call(agent_id=3, tenant_id="test_tenant")
2973+
])
2974+
# check_tool_is_available should only be called for enabled agents (2 calls, not 3)
2975+
assert mock_check_tools.call_count == 2
2976+
2977+
2978+
@pytest.mark.asyncio
2979+
async def test_list_all_agent_info_impl_all_disabled_agents():
2980+
"""
2981+
Test list_all_agent_info_impl with all agents disabled.
2982+
2983+
This test verifies that:
2984+
1. When all agents are disabled, an empty list is returned
2985+
2. No tool queries are made since no agents are processed
2986+
"""
2987+
# Setup mock agents - all disabled
2988+
mock_agents = [
2989+
{
2990+
"agent_id": 1,
2991+
"name": "Disabled Agent 1",
2992+
"display_name": "Display Disabled Agent 1",
2993+
"description": "First disabled agent",
2994+
"enabled": False
2995+
},
2996+
{
2997+
"agent_id": 2,
2998+
"name": "Disabled Agent 2",
2999+
"display_name": "Display Disabled Agent 2",
3000+
"description": "Second disabled agent",
3001+
"enabled": False
3002+
}
3003+
]
3004+
3005+
with patch('backend.services.agent_service.query_all_agent_info_by_tenant_id') as mock_query_agents, \
3006+
patch('backend.services.agent_service.search_tools_for_sub_agent') as mock_search_tools, \
3007+
patch('backend.services.agent_service.check_tool_is_available') as mock_check_tools:
3008+
# Configure mocks
3009+
mock_query_agents.return_value = mock_agents
3010+
3011+
# Execute
3012+
result = await list_all_agent_info_impl(tenant_id="test_tenant")
3013+
3014+
# Assert - no agents should be in the result
3015+
assert len(result) == 0
3016+
assert result == []
3017+
3018+
# Verify mock calls
3019+
mock_query_agents.assert_called_once_with(tenant_id="test_tenant")
3020+
# No tool queries should be made since no agents are enabled
3021+
mock_search_tools.assert_not_called()
3022+
mock_check_tools.assert_not_called()

0 commit comments

Comments
 (0)