test(wave162): asset_scoring素材评分 +66测 #1096

Merged
xiaoxia merged 1 commits from test/wave162-asset-scoring into develop 2026-07-28 16:18:42 +08:00
Owner

变更内容

  • score_resolution分辨率评分:None/0值/目标匹配/超分/线性衰减/最低分/自定义目标
  • score_duration时长评分:None/0值/最佳区间/过短衰减/过长扣分/边界值
  • score_bitrate码率评分:缺省值/最佳区间/低码率衰减/高码率扣分/最低分
  • calculate_total_score加权总分:满分/零分/权重验证/精度
  • score_asset_detail单素材评分:对象返回/完美素材/质量默认/归一化/组件一致性
  • _bucket_by_duration分桶:unknown/short/medium/long + 边界值
  • diverse_selection多样性选择:空输入/0值/不足量/三桶配额/大count配额/全局补位
  • filter_candidates候选过滤:状态/类型/质量门槛/None质量/枚举状态/空输入

测试数据

  • 新增测试:66个
  • 测试文件:tests/unit/domain/test_asset_scoring.py
  • 本地验证:pytest 全绿 + ruff 全绿 + black 格式化
### 变更内容 - score_resolution分辨率评分:None/0值/目标匹配/超分/线性衰减/最低分/自定义目标 - score_duration时长评分:None/0值/最佳区间/过短衰减/过长扣分/边界值 - score_bitrate码率评分:缺省值/最佳区间/低码率衰减/高码率扣分/最低分 - calculate_total_score加权总分:满分/零分/权重验证/精度 - score_asset_detail单素材评分:对象返回/完美素材/质量默认/归一化/组件一致性 - _bucket_by_duration分桶:unknown/short/medium/long + 边界值 - diverse_selection多样性选择:空输入/0值/不足量/三桶配额/大count配额/全局补位 - filter_candidates候选过滤:状态/类型/质量门槛/None质量/枚举状态/空输入 ### 测试数据 - 新增测试:66个 - 测试文件:tests/unit/domain/test_asset_scoring.py - 本地验证:pytest 全绿 + ruff 全绿 + black 格式化

🚀 预览环境已部署

项目 详情
PR号 #1096
预览链接 https://pr-1096.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1096 | | 预览链接 | [https://pr-1096.preview.xiaoxiajianji.com](https://pr-1096.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-07-28 16:06:12 +08:00
test(wave162): asset_scoring素材评分 +66测
CI/CD Pipeline / Staging E2E Tests (pull_request) Blocked by required conditions
CI/CD Pipeline / Staging API Integration Tests (pull_request) Blocked by required conditions
CI/CD Pipeline / Deploy Production (pull_request) Blocked by required conditions
CI/CD Pipeline / Production Browser E2E (pull_request) Blocked by required conditions
CI/CD Pipeline / ACR Image Cleanup (pull_request) Blocked by required conditions
CI/CD Pipeline / Canary Release to Production (pull_request) Blocked by required conditions
Preview Cleanup / Cleanup Preview Environment (pull_request) Waiting to run
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 21s
CI/CD Pipeline / Unit Tests (pull_request) Waiting to run
CI/CD Pipeline / Frontend Unit Tests (pull_request) Waiting to run
CI/CD Pipeline / Build Production API Image (pull_request) Waiting to run
CI/CD Pipeline / Build Production Web Image (pull_request) Waiting to run
CI/CD Pipeline / Build Production Worker Image (pull_request) Waiting to run
CI/CD Pipeline / CI Gate (pull_request) Blocked by required conditions
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 34s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m37s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m28s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m44s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Waiting to run
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 / Deploy Staging (Watchtower auto-deploy) (pull_request) Waiting to run
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m14s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m36s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m14s
AI Code Review / AI Code Review (pull_request) Successful in 1m13s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m55s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 46m8s
1d18991d98
- score_resolution分辨率评分:None/0值/目标匹配/超分/线性衰减/最低分/自定义目标
- score_duration时长评分:None/0值/最佳区间/过短衰减/过长扣分/边界值
- score_bitrate码率评分:缺省值/最佳区间/低码率衰减/高码率扣分/最低分
- calculate_total_score加权总分:满分/零分/权重验证/精度
- score_asset_detail单素材评分:对象返回/完美素材/质量默认/归一化/组件一致性
- _bucket_by_duration分桶:unknown/short/medium/long + 边界值
- diverse_selection多样性选择:空输入/0值/不足量/三桶配额/大count配额/全局补位
- filter_candidates候选过滤:状态/类型/质量门槛/None质量/枚举状态/空输入
xiaoxia force-pushed test/wave162-asset-scoring from bc681c5822 to 1d18991d98 2026-07-28 16:06:12 +08:00 Compare
xiaoxia merged commit b353ac0328 into develop 2026-07-28 16:18:42 +08:00
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. 测试覆盖全面:测试用例覆盖了正常流程、边界值(如 0, None, 负数)、异常输入以及自定义参数,体现了较高的测试质量。
  2. 断言清晰:使用了 pytest.approx 处理浮点数比较,避免了精度问题;对业务逻辑(如状态过滤不计入质量门槛)有明确的注释和验证。
  3. 代码结构清晰:按照被测函数模块划分测试类,使用了辅助函数(如 _make_detail)来减少重复代码,可读性良好。
  4. 类型兼容性测试test_with_enum_status 考虑到了 Enum 类型的状态字段,增强了对不同数据类型的兼容性验证。

格式检查通过 | 逻辑审查通过 | 性能无明显问题


🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 08:54:30 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **测试覆盖全面**:测试用例覆盖了正常流程、边界值(如 0, None, 负数)、异常输入以及自定义参数,体现了较高的测试质量。 2. **断言清晰**:使用了 `pytest.approx` 处理浮点数比较,避免了精度问题;对业务逻辑(如状态过滤不计入质量门槛)有明确的注释和验证。 3. **代码结构清晰**:按照被测函数模块划分测试类,使用了辅助函数(如 `_make_detail`)来减少重复代码,可读性良好。 4. **类型兼容性测试**:`test_with_enum_status` 考虑到了 Enum 类型的状态字段,增强了对不同数据类型的兼容性验证。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 08:54:30 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
Sign in to join this conversation.