test: P3-1 第33波单元测试(projects/generated_videos/duplication) #810

Merged
xiaoxia merged 1 commits from test/unit-test-wave33 into develop 2026-07-24 11:25:49 +08:00
Owner

变更内容

P3-1 第33波单元测试补充,合计 +69 个测试。

新增测试文件

  1. test_projects_use_cases.py (30个) - 项目UseCase

    • ListProjectsUseCase:空值校验/strip/正常查询
    • GetProjectUseCase:存在/不存在/空值/strip
    • CreateProjectUseCase:成功/无描述/空名称校验
    • ShareProjectUseCase:成功/不存在/非所有者/已共享不重复
    • UnshareProjectUseCase:成功/不存在/非所有者/未共享不保存
    • DeleteProjectUseCase:所有者成功/不存在/非所有者
    • CreateProjectCommand:字段/默认值/dataclass
  2. test_generated_videos_use_cases.py (27个) - 生成视频UseCase

    • ListGeneratedVideosUseCase:正常/空值/strip
    • ListGeneratedVideosPaginatedUseCase:默认参数/page边界/pageSize边界/全过滤
    • GetGeneratedVideoUseCase:存在/不存在
    • ListGeneratedVideosByTaskUseCase:正常/空值/strip
    • GetGeneratedVideoDownloadUrlUseCase:成功/不存在
    • UpdateVideoReviewStatusUseCase:三种状态/无效状态/空ID/strip
    • GetVideosByIdsUseCase:批量/空列表
  3. test_duplication_use_cases.py (12个) - 查重UseCase

    • UploadForDuplicationUseCase:成功/默认时长/空user_id/零大小
    • ListDuplicationRecordsUseCase:正常/分页/空值/strip
    • GetDuplicationDetailUseCase:存在/不存在
    • DeleteDuplicationRecordUseCase:成功/不存在
    • RetryDuplicationUseCase:失败重试/不存在/pending拒绝/completed拒绝

测试结果

4477 passed, 8 skipped
## 变更内容 P3-1 第33波单元测试补充,合计 +69 个测试。 ### 新增测试文件 1. **test_projects_use_cases.py** (30个) - 项目UseCase - ListProjectsUseCase:空值校验/strip/正常查询 - GetProjectUseCase:存在/不存在/空值/strip - CreateProjectUseCase:成功/无描述/空名称校验 - ShareProjectUseCase:成功/不存在/非所有者/已共享不重复 - UnshareProjectUseCase:成功/不存在/非所有者/未共享不保存 - DeleteProjectUseCase:所有者成功/不存在/非所有者 - CreateProjectCommand:字段/默认值/dataclass 2. **test_generated_videos_use_cases.py** (27个) - 生成视频UseCase - ListGeneratedVideosUseCase:正常/空值/strip - ListGeneratedVideosPaginatedUseCase:默认参数/page边界/pageSize边界/全过滤 - GetGeneratedVideoUseCase:存在/不存在 - ListGeneratedVideosByTaskUseCase:正常/空值/strip - GetGeneratedVideoDownloadUrlUseCase:成功/不存在 - UpdateVideoReviewStatusUseCase:三种状态/无效状态/空ID/strip - GetVideosByIdsUseCase:批量/空列表 3. **test_duplication_use_cases.py** (12个) - 查重UseCase - UploadForDuplicationUseCase:成功/默认时长/空user_id/零大小 - ListDuplicationRecordsUseCase:正常/分页/空值/strip - GetDuplicationDetailUseCase:存在/不存在 - DeleteDuplicationRecordUseCase:成功/不存在 - RetryDuplicationUseCase:失败重试/不存在/pending拒绝/completed拒绝 ### 测试结果 ``` 4477 passed, 8 skipped ```
xiaoxia added this to the 代码质量清理专项 milestone 2026-07-24 10:45:35 +08:00
xiaoxia added 1 commit 2026-07-24 10:45:36 +08:00
test: P3-1 第33波单元测试
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 59s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 2m2s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m20s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m19s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 55s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m24s
AI Code Review / AI Code Review (pull_request) Successful in 4m11s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 19s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m47s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m28s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11m51s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m6s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m46s
CI/CD Pipeline / Deploy Production (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 / ACR Image Cleanup (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 49m10s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
bb95bb559a
- projects use case: 30个测试(列表/获取/创建/共享/取消共享/删除/命令对象)
- generated_videos use case: 27个测试(列表/分页/获取/按任务查询/下载URL/审核状态/批量获取)
- duplication use case: 12个测试(上传/列表/详情/删除/重试/命令对象)

合计+69
Collaborator

代码审查结果 - PR #810

⚠️ 问题(0个需要修改)

💡 建议(2个可选)

  1. tests/unit/test_duplication_use_cases.py断言错误消息语言不一致

    • 说明:在 TestUploadForDuplicationUseCase.test_upload_empty_user_id_raises(第74行)中,断言的错误消息为英文 "user_id cannot be empty";而在 TestListDuplicationRecordsUseCase.test_empty_user_id_raises(第107行)中,断言为中文 "user_id 不能为空"。这通常意味着底层的校验逻辑或错误消息定义不统一,或者测试用例复制粘贴后未修改。建议统一 Domain 层或 UseCase 层的错误消息语言,确保测试断言与实际抛出的消息一致。
  2. tests/unit/test_duplication_use_cases.py测试断言的健壮性

    • 说明:多处使用 pytest.raises(ValueError, match="...") 匹配具体的错误消息字符串(如第74行、第107行)。这种方式虽然能精确校验错误,但一旦业务层调整错误文案(例如修正错别字或增加标点),测试就会失败。建议如果业务层没有定义专门的错误枚举类,至少应确保核心关键词匹配,或者优先校验异常类型,仅在关键校验点匹配文案。

格式检查通过 | 逻辑审查通过 | 性能良好免维护


🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 02:55:31 | 模型:

## 代码审查结果 - PR #810 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(2个可选) 1. **tests/unit/test_duplication_use_cases.py**:**断言错误消息语言不一致** - **说明**:在 `TestUploadForDuplicationUseCase.test_upload_empty_user_id_raises`(第74行)中,断言的错误消息为英文 `"user_id cannot be empty"`;而在 `TestListDuplicationRecordsUseCase.test_empty_user_id_raises`(第107行)中,断言为中文 `"user_id 不能为空"`。这通常意味着底层的校验逻辑或错误消息定义不统一,或者测试用例复制粘贴后未修改。建议统一 Domain 层或 UseCase 层的错误消息语言,确保测试断言与实际抛出的消息一致。 2. **tests/unit/test_duplication_use_cases.py**:**测试断言的健壮性** - **说明**:多处使用 `pytest.raises(ValueError, match="...")` 匹配具体的错误消息字符串(如第74行、第107行)。这种方式虽然能精确校验错误,但一旦业务层调整错误文案(例如修正错别字或增加标点),测试就会失败。建议如果业务层没有定义专门的错误枚举类,至少应确保核心关键词匹配,或者优先校验异常类型,仅在关键校验点匹配文案。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好免维护 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 02:55:31 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 2ee110f19c into develop 2026-07-24 11:25:49 +08:00
xiaoxia deleted branch test/unit-test-wave33 2026-07-24 11:25:49 +08:00

🗑️ 预览环境已清理

PR #810 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #810 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.