38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
"""快速新对话自动标题的纯函数边界。"""
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from core.task_title import clean_generated_title, is_attachment_only_message
|
|
|
|
|
|
class TaskTitleTests(unittest.TestCase):
|
|
def test_strips_model_wrappers_and_forbidden_path_chars(self):
|
|
self.assertEqual(
|
|
clean_generated_title('标题:“低碳水泥/XRD 分析”', "原消息"),
|
|
"低碳水泥·XRD 分析",
|
|
)
|
|
|
|
def test_empty_or_generic_output_falls_back_to_user_message(self):
|
|
self.assertEqual(
|
|
clean_generated_title("新对话", " 分析熟料三率值变化\n补充说明"),
|
|
"分析熟料三率值变化",
|
|
)
|
|
|
|
def test_title_is_bounded(self):
|
|
title = clean_generated_title("这是一段非常非常长而且不适合作为对话标题的模型输出内容", "")
|
|
self.assertLessEqual(len(title), 24)
|
|
|
|
def test_attachment_only_message_is_deferred_for_auto_title(self):
|
|
self.assertTrue(is_attachment_only_message(
|
|
"[用户上传的参考图] 项目/显微照片.png\n[用户上传的文件] 项目/数据表.xlsx"
|
|
))
|
|
self.assertFalse(is_attachment_only_message(
|
|
"请分析这些数据\n\n[用户上传的文件] 项目/数据表.xlsx"
|
|
))
|
|
self.assertFalse(is_attachment_only_message(""))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|