From 79cec240c3487674ea530969c9934e9c802ba7eb Mon Sep 17 00:00:00 2001 From: CI Bot Date: Mon, 20 Jul 2026 18:53:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(test):=20=E4=BF=AE=E5=A4=8Dpublish=5Ftempla?= =?UTF-8?q?te=5Ffrom=5Fdraft=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:publish_template_from_draft方法中删除旧片段配置用了self._db.query().delete() 直接操作SQLAlchemy,绕过了_clip_config_repo。单元测试的stub repository 无法感知这个删除操作,导致旧数据残留,发布后片段数量从预期2个变成3个。 修复:将直接db删除改为_clip_config_repo.delete_by_template(), 统一走repository模式,保证测试stub和真实行为一致。 --- apps/api/app/services/edit_template_service.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/apps/api/app/services/edit_template_service.py b/apps/api/app/services/edit_template_service.py index 4fac5239a..ef8c72652 100755 --- a/apps/api/app/services/edit_template_service.py +++ b/apps/api/app/services/edit_template_service.py @@ -754,14 +754,8 @@ class EditTemplateService: template.bump_version() # 版本号 +1 updated_template = self._template_repo.update(template) - # 批量删除旧的片段配置(N+1 → 1条DELETE,外层事务统一提交) - from packages.adapters.sqlalchemy_impl.models import ( - TemplateClipConfigModel, - ) - - self._db.query(TemplateClipConfigModel).filter(TemplateClipConfigModel.template_id == template_id).delete( - synchronize_session=False - ) + # 批量删除旧的片段配置(走 repository,保证测试 stub 和真实行为一致) + self._clip_config_repo.delete_by_template(template_id) # 创建新的片段配置 created_configs: list[TemplateClipConfig] = [] -- 2.54.0