fix(test): 修复MagicMock枚举导致的3个单元测试失败 #642

Merged
xiaoxia merged 1 commits from ci/fix-unit-test-magicmock-enum into develop 2026-07-20 17:41:10 +08:00

1 Commits

Author SHA1 Message Date
CI Bot 1a6672dc6e fix(test): 修复MagicMock枚举导致的3个单元测试失败
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 18s
AI Code Review / AI Code Review (pull_request) Failing after 32s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m18s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 7m30s
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 6s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Failing after 57s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m10s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 3m17s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m44s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 23s
根因:测试mock SessionLocal时未区分新/旧模板系统的model查询,
SQLAlchemyEditTemplateRepository.get()也会走到mock session并返回MagicMock,
导致_model_to_entity中EditTemplateStatus(model.status)枚举转换失败。

修复:mock session.query()增加side_effect,根据model类型返回不同结果:
- EditTemplateModel查询返回None(强制走旧模板系统fallback)
- TemplateModel查询返回mock template(测试目标路径)

影响测试:
- TestP1Validations.test_validate_template_exists_success
- TestTemplatePlanConfigLoading.test_load_template_config_assembles_three_fields
- TestTemplatePlanConfigLoading.test_load_template_config_only_bgm
2026-07-20 14:24:13 +08:00