Organize tool scheme

This commit is contained in:
Xin Wang
2026-02-11 11:22:56 +08:00
parent 9304927fe9
commit 80e1d24443
4 changed files with 115 additions and 132 deletions

View File

@@ -14,16 +14,21 @@ class TestToolsAPI:
assert "tools" in data
# Check for expected tools
tools = data["tools"]
assert "search" in tools
assert "calculator" in tools
assert "weather" in tools
assert "code_interpreter" in tools
assert "current_time" in tools
assert "turn_on_camera" in tools
assert "turn_off_camera" in tools
assert "increase_volume" in tools
assert "decrease_volume" in tools
assert "calculator" in tools
def test_get_tool_detail(self, client):
"""Test getting a specific tool's details"""
response = client.get("/api/tools/list/search")
response = client.get("/api/tools/list/calculator")
assert response.status_code == 200
data = response.json()
assert data["name"] == "网络搜索"
assert data["name"] == "计算器"
assert "parameters" in data
def test_get_tool_detail_not_found(self, client):
@@ -256,15 +261,14 @@ class TestAutotestAPI:
assert "required" in data["parameters"]
assert "expression" in data["parameters"]["required"]
def test_translate_tool_parameters(self, client):
"""Test translate tool has correct parameters"""
response = client.get("/api/tools/list/translate")
def test_code_interpreter_tool_parameters(self, client):
"""Test code_interpreter tool has correct parameters"""
response = client.get("/api/tools/list/code_interpreter")
assert response.status_code == 200
data = response.json()
assert data["name"] == "翻译"
assert "text" in data["parameters"]["properties"]
assert "target_lang" in data["parameters"]["properties"]
assert data["name"] == "代码执行"
assert "code" in data["parameters"]["properties"]
class TestToolResourceCRUD:
@@ -276,7 +280,7 @@ class TestToolResourceCRUD:
payload = response.json()
assert payload["total"] >= 1
ids = [item["id"] for item in payload["list"]]
assert "search" in ids
assert "calculator" in ids
def test_create_update_delete_tool_resource(self, client):
create_resp = client.post("/api/tools/resources", json={
@@ -314,14 +318,14 @@ class TestToolResourceCRUD:
def test_system_tool_can_be_updated_and_deleted(self, client):
list_resp = client.get("/api/tools/resources")
assert list_resp.status_code == 200
assert any(item["id"] == "search" for item in list_resp.json()["list"])
assert any(item["id"] == "turn_on_camera" for item in list_resp.json()["list"])
update_resp = client.put("/api/tools/resources/search", json={"name": "更新后的搜索工具", "category": "query"})
update_resp = client.put("/api/tools/resources/turn_on_camera", json={"name": "更新后的打开摄像头", "category": "system"})
assert update_resp.status_code == 200
assert update_resp.json()["name"] == "更新后的搜索工具"
assert update_resp.json()["name"] == "更新后的打开摄像头"
delete_resp = client.delete("/api/tools/resources/search")
delete_resp = client.delete("/api/tools/resources/turn_on_camera")
assert delete_resp.status_code == 200
get_resp = client.get("/api/tools/resources/search")
get_resp = client.get("/api/tools/resources/turn_on_camera")
assert get_resp.status_code == 404