fad458b2a7
- UIUX 文档:填充 19 个缺口(多主体画像/健康度/AI+看板/增长域/洞察域/创始人端/OODA/助推/商密) - UIUX 文档:插入 6 个新章节(十四~十九),旧章节重编号为二十~三十一,更新目录和交叉引用 - 作业指导书 x5:导航改为 6 域分组,新增 Context Bar/工作模式/Insight Rail/决策线程/多工作区等 UI 概念 - 新建 docs/2-task-uiux.md:50 个代码落地开发任务,按 P0-P6 分优先级 + 8 Sprint 规划 - 后端/前端:大量新增模型、路由、组件(来自之前 Phase 开发)
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
"""T4.6 AAR 系统化复盘测试。
|
|
|
|
测试 AI AAR Agent 的五问复盘和触发条件检测。
|
|
"""
|
|
|
|
import pytest
|
|
|
|
from app.services.aar_agent import check_aar_triggers, generate_aar
|
|
|
|
|
|
class TestGenerateAAR:
|
|
"""五问复盘测试。"""
|
|
|
|
async def test_returns_dict(self):
|
|
"""返回复盘结果字典。"""
|
|
result = await generate_aar(
|
|
"CTO 离职",
|
|
"原计划 Q3 完成产品 2.0 上线",
|
|
"产品延期 2 个月,团队士气下降",
|
|
)
|
|
assert isinstance(result, dict)
|
|
|
|
async def test_empty_input(self):
|
|
"""空输入返回字典。"""
|
|
result = await generate_aar("", "", "")
|
|
assert isinstance(result, dict)
|
|
|
|
|
|
class TestCheckAarTriggers:
|
|
"""AAR 触发条件检测测试。"""
|
|
|
|
async def test_risk_resolved_trigger(self):
|
|
"""风险处理完成触发 AAR。"""
|
|
events = [{"type": "risk_resolved", "title": "现金流危机解除"}]
|
|
result = await check_aar_triggers("company-1", events)
|
|
assert len(result) == 1
|
|
assert result[0]["trigger_type"] == "risk_resolved"
|
|
|
|
async def test_funding_completed_trigger(self):
|
|
"""融资完成触发 AAR。"""
|
|
events = [{"type": "funding_completed", "title": "A 轮融资完成"}]
|
|
result = await check_aar_triggers("company-1", events)
|
|
assert len(result) == 1
|
|
|
|
async def test_no_trigger(self):
|
|
"""无触发事件返回空列表。"""
|
|
events = [{"type": "routine_update", "title": "常规月报"}]
|
|
result = await check_aar_triggers("company-1", events)
|
|
assert result == []
|
|
|
|
async def test_empty_events(self):
|
|
"""空事件列表返回空。"""
|
|
result = await check_aar_triggers("company-1", [])
|
|
assert result == []
|
|
|
|
async def test_multiple_triggers(self):
|
|
"""多个触发事件全部识别。"""
|
|
events = [
|
|
{"type": "funding_completed", "title": "A 轮完成"},
|
|
{"type": "talent_left", "title": "CTO 离职"},
|
|
{"type": "routine", "title": "常规更新"},
|
|
]
|
|
result = await check_aar_triggers("company-1", events)
|
|
assert len(result) == 2
|