fix(test): 修复publish_template_from_draft单元测试失败 #650
Reference in New Issue
Block a user
Delete Branch "fix/unit-test-publish-template-draft"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
develop 上 Unit Tests 1个失败:
TestTemplateDraft::test_publish_template_from_draft_successAssertionError: assert 3 == 2根因
publish_template_from_draft方法中删除旧片段配置用了self._db.query(TemplateClipConfigModel).filter(...).delete()直接操作SQLAlchemy,绕过了_clip_config_repo。单元测试用的是 stub repository,
_db是 MagicMock,删除操作不会真的删 stub 里的数据 → 旧1个 + 新2个 = 3个。修复
将直接 db 删除改为
self._clip_config_repo.delete_by_template(template_id),统一走 repository 模式:TemplateClipConfigModel导入验证
本地
test_edit_template_service.py全部 52 个测试通过。📊 审查概览
❌ 需修改的问题(严重)
无
💡 改进建议(一般)
synchronize_session=False来优化批量删除性能。请确保_clip_config_repo.delete_by_template的内部实现也采用了对应的批量删除策略(例如 SQLAlchemy 的delete().where(...)语法),而非在循环中逐条删除,以避免在数据量较大时出现性能倒退。✅ 良好实践
TemplateClipConfigModel(Infrastructure 层具体实现)的直接依赖,改用 Repository 接口,符合依赖倒置原则(DIP),提升了代码的可维护性。_clip_config_repo进行 Mock/Stub,验证了注释中提到的“保证测试 stub 和真实行为一致”的意图。import语句,使职责更加单一。🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 18:56:21 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #650 已关闭或合并,对应的预览环境已被清理。