fix(test): 修复publish_template_from_draft单元测试失败
AI Code Review / AI Code Review (pull_request) Successful in 2m11s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 7m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m57s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 7s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1388h31m45s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1388h33m8s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1388h33m10s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1388h33m14s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1388h33m16s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1388h33m18s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1388h35m10s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1388h35m12s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1388h35m13s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1388h35m14s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1388h35m15s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1389h5m21s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1389h7m20s
AI Code Review / AI Code Review (pull_request) Successful in 2m11s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 7m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m57s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 7s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1388h31m45s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1388h33m8s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1388h33m10s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1388h33m14s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1388h33m16s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1388h33m18s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1388h35m10s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1388h35m12s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1388h35m13s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1388h35m14s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1388h35m15s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1389h5m21s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1389h7m20s
根因: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和真实行为一致。
This commit is contained in:
@@ -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] = []
|
||||
|
||||
Reference in New Issue
Block a user