NarratoAI/webui/tools/test_generate_short_summary_unittest.py
viccy e6e39d2dcd feat(short-drama): 完整实现短剧解说剪辑全流程并新增LLM流式生成支持
- 新增短剧解说全流程四类提示词模板:解说文案生成、片段规划、文案画面匹配、脚本修复
- 重构原有脚本生成提示词至v2.1,改为基于上游规划片段生成合规解说脚本
- 为LLM基础服务层新增流式文本生成接口,完善OpenAI兼容提供商的流式实现,支持流式回调与推理内容提取
- 重构OpenAI兼容文本提供商的生成逻辑,提取公共参数构建方法
- 新增多语言国际化文案,覆盖解说语言、短剧类型、原片占比等配置项与交互提示
- 新增多套单元测试,覆盖脚本校验、适配器流程、工具函数等模块
- 封装SubtitleAnalyzerAdapter,统一短剧解说脚本生成的整套业务接口
- 新增前端交互所需的解说文案审核相关提示文案
2026-06-07 17:10:48 +08:00

28 lines
838 B
Python

import unittest
from webui.tools.generate_short_summary import _format_progress_status, parse_and_fix_json
class GenerateShortSummaryJsonTests(unittest.TestCase):
def test_progress_message_does_not_prefix_fake_percentage(self):
status = _format_progress_status(60, "正在生成文案...")
self.assertEqual("正在生成文案...", status)
self.assertNotIn("60%", status)
def test_invalid_json_does_not_create_default_fake_script(self):
self.assertIsNone(parse_and_fix_json("not a json response"))
def test_json_code_block_is_parsed(self):
parsed = parse_and_fix_json(
"""```json
{"items": [{"_id": 1, "timestamp": "00:00:01,000-00:00:02,000"}]}
```"""
)
self.assertEqual(1, parsed["items"][0]["_id"])
if __name__ == "__main__":
unittest.main()