32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
import unittest
|
||
|
||
from app.services.ai_steward import AIStewardService
|
||
|
||
|
||
class AIStewardTitleExtractTest(unittest.IsolatedAsyncioTestCase):
|
||
async def test_extract_title_from_plain_project_create_instruction(self) -> None:
|
||
title = AIStewardService._extract_project_title_from_instruction("给我新增个项目,openclaw自动化部署。")
|
||
self.assertEqual(title, "openclaw自动化部署")
|
||
|
||
async def test_extract_title_from_correction_sentence(self) -> None:
|
||
title = AIStewardService._extract_project_title_from_instruction("不是创建信号,是创建项目名为openclaw自动化部署。")
|
||
self.assertEqual(title, "openclaw自动化部署")
|
||
|
||
async def test_normalize_project_draft_should_not_use_instruction_sentence_as_title(self) -> None:
|
||
service = AIStewardService(db=None) # type: ignore[arg-type]
|
||
normalized = await service._normalize_project_creation_draft(
|
||
draft={
|
||
"analysis": {},
|
||
"project": {
|
||
"title": "不是创建信号,是创建项目名为openclaw自动化部署。",
|
||
"description": "不是创建信号,是创建项目名为openclaw自动化部署。",
|
||
},
|
||
"tasks": [],
|
||
},
|
||
input_text="不是创建信号,是创建项目名为openclaw自动化部署。",
|
||
creator_id=1,
|
||
tenant_id=1,
|
||
)
|
||
self.assertEqual(normalized["project"]["title"], "openclaw自动化部署")
|
||
self.assertEqual(normalized["project"]["description"], "项目:openclaw自动化部署")
|