Merge pull request #164 from openqj/feat-cloud-mcp-more

feat(mcp): 云端 MCP 工具从 8 个扩到 12 个
This commit is contained in:
openqj authored and GitHub committed 2026-10-30 02:47:36 +08:00
commit 4bbe6a99e3
2 files changed
+73 -3

No files matched your search

+32
View File
@@ -39,6 +39,16 @@ class FakeTransport:
return 200, {"total_tokens": 10}
if path == "/tasks/t1/trace":
return 200, {"entries": []}
if path == "/tasks/t1/files":
return 200, {"files": [{"path": "a.py"}]}
if path == "/tasks/t1/files?path=a.py":
return 200, {"content": "print(1)"}
if path == "/tasks/t1/result-full":
return 200, {"result_text_full": "full-result"}
if path == "/tasks/t1/retry":
return 200, {"id": "t1", "status": "queued"}
if path == "/tasks/t1/merge":
return 200, {"id": "t1", "status": "merged"}
if path == "/tasks/nope":
return 404, {"error": "not found"}
return 400, {"error": "bad request"}
@@ -111,6 +121,28 @@ class MCPServerTestCase(unittest.TestCase):
payload = json.loads(resp["result"]["content"][0]["text"])
self.assertEqual(payload["http_status"], 404)
def test_new_tools_translate_to_rest(self):
is_error, payload = self.server.call_tool(
"get_task_files", {"task_id": "t1"})
self.assertFalse(is_error)
self.assertEqual(payload["files"][0]["path"], "a.py")
is_error, payload = self.server.call_tool(
"get_task_files", {"task_id": "t1", "path": "a.py"})
self.assertFalse(is_error)
self.assertEqual(payload["content"], "print(1)")
is_error, payload = self.server.call_tool(
"get_task_result_full", {"task_id": "t1"})
self.assertFalse(is_error)
self.assertEqual(payload["result_text_full"], "full-result")
is_error, payload = self.server.call_tool(
"retry_task", {"task_id": "t1"})
self.assertFalse(is_error)
self.assertEqual(payload["status"], "queued")
is_error, payload = self.server.call_tool(
"merge_task", {"task_id": "t1"})
self.assertFalse(is_error)
self.assertEqual(payload["status"], "merged")
def test_missing_arg_is_error_not_rest_call(self):
before = len(self.transport.calls)
is_error, payload = self.server.call_tool("list_tasks", {})