Files
AIPortPilot/backend/tests/test_aar.py
T
selfrelease fad458b2a7 docs(uiux): UIUX 设计方案大改 + 5 份作业指导书对齐 + 开发任务文档
- UIUX 文档:填充 19 个缺口(多主体画像/健康度/AI+看板/增长域/洞察域/创始人端/OODA/助推/商密)
- UIUX 文档:插入 6 个新章节(十四~十九),旧章节重编号为二十~三十一,更新目录和交叉引用
- 作业指导书 x5:导航改为 6 域分组,新增 Context Bar/工作模式/Insight Rail/决策线程/多工作区等 UI 概念
- 新建 docs/2-task-uiux.md:50 个代码落地开发任务,按 P0-P6 分优先级 + 8 Sprint 规划
- 后端/前端:大量新增模型、路由、组件(来自之前 Phase 开发)
2026-07-19 11:53:38 +08:00

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