67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from app import create_app
|
|
|
|
|
|
class RouteMessageTest(unittest.TestCase):
|
|
def setUp(self):
|
|
self.app = create_app("testing")
|
|
self.client = self.app.test_client()
|
|
|
|
def test_success_messages_include_business_action(self):
|
|
response = self.client.get("/api/health")
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.get_json()["message"], "健康检查成功")
|
|
|
|
def test_failure_messages_include_business_action(self):
|
|
response = self.client.get("/api/rules/status")
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
self.assertEqual(response.get_json()["message"], "查询失败:缺少 task_id")
|
|
|
|
def test_clear_domains_message_is_delete_success(self):
|
|
with patch("app.routes.domain.DomainStorage") as domain_storage_cls:
|
|
with patch("app.routes.domain.SchemaStorage") as schema_storage_cls:
|
|
domain_storage_cls.return_value.clear_all.return_value = 3
|
|
schema_storage_cls.return_value.delete_file.return_value = True
|
|
|
|
response = self.client.post("/api/domains/clear")
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.get_json()["message"], "删除成功")
|
|
self.assertEqual(response.get_json()["data"]["deleted_count"], 3)
|
|
|
|
def test_generate_rules_returns_compact_async_task_info(self):
|
|
with patch("app.routes.rules.RuleGenerationService") as service_cls:
|
|
service_cls.return_value.start.return_value = {
|
|
"task_id": "task-1",
|
|
"status": "running",
|
|
"limit": 3,
|
|
"generated_count": 0,
|
|
"output_file": "/app/output/rules-task-1/rules-task-1.xlsx",
|
|
"markdown_file": "/app/output/rules-task-1/rules-task-1.md",
|
|
"files": {
|
|
"excel": "/app/output/rules-task-1/rules-task-1.xlsx",
|
|
"markdown": "/app/output/rules-task-1/rules-task-1.md",
|
|
},
|
|
}
|
|
|
|
response = self.client.post("/api/rules/generate", json={"limit": 3})
|
|
|
|
body = response.get_json()
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(body["message"], "规则生成任务创建成功")
|
|
self.assertEqual(body["data"], {
|
|
"task_id": "task-1",
|
|
"status": "running",
|
|
"async": True,
|
|
"limit": 3,
|
|
"status_url": "/api/rules/status?task_id=task-1",
|
|
})
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|