test(wave167): sticker_config贴纸配置 +91测 #1105

Merged
xiaoxia merged 1 commits from test/wave167-sticker-config into develop 2026-07-28 16:18:29 +08:00
Owner

变更内容

  • 常量验证:9宫格预设/归一化范围/角落位置/中心点/贴纸分类
  • ImageStickerConfig默认值 + from_dict(None/空/非dict/坐标转换/钳制/非法值回退)
  • TextStickerConfig默认值 + from_dict(文字/字体/描边/阴影/背景/坐标/时间)
  • StickerOverlayResult数据类
  • resolve_sticker_position位置解析:9宫格/自定义percent/pixel/钳制/零画布
  • parse_stickers_from_config列表解析
  • get_sticker_categories分类

测试数据

  • 新增测试:91个
  • 测试文件:tests/unit/domain/test_sticker_config.py
  • 本地验证:pytest 全绿 + ruff 全绿 + black 格式化
### 变更内容 - 常量验证:9宫格预设/归一化范围/角落位置/中心点/贴纸分类 - ImageStickerConfig默认值 + from_dict(None/空/非dict/坐标转换/钳制/非法值回退) - TextStickerConfig默认值 + from_dict(文字/字体/描边/阴影/背景/坐标/时间) - StickerOverlayResult数据类 - resolve_sticker_position位置解析:9宫格/自定义percent/pixel/钳制/零画布 - parse_stickers_from_config列表解析 - get_sticker_categories分类 ### 测试数据 - 新增测试:91个 - 测试文件:tests/unit/domain/test_sticker_config.py - 本地验证:pytest 全绿 + ruff 全绿 + black 格式化

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1105 | | 预览链接 | [https://pr-1105.preview.xiaoxiajianji.com](https://pr-1105.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

代码审查结果 - PR #1105

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

💡 建议(1个可选)

  1. tests/unit/domain/test_sticker_config.py 第648行assert len(STICKER_CATEGORIES) == len(STICKER_CATEGORIES) 是一个同义反复(A==A),无法验证常量是否被修改。该测试的目的是验证 get_sticker_categories 返回的是副本,修改返回值不应影响原常量。虽然下一行 assert ("new", "新分类") not in STICKER_CATEGORIES 已经能正确验证这一点,但第648行的断言是冗余代码,建议删除或改为记录原始长度进行对比(如 assert len(STICKER_CATEGORIES) == original_len)。

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


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

## 代码审查结果 - PR #1105 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(1个可选) 1. **tests/unit/domain/test_sticker_config.py 第648行**:`assert len(STICKER_CATEGORIES) == len(STICKER_CATEGORIES)` 是一个同义反复(A==A),无法验证常量是否被修改。该测试的目的是验证 `get_sticker_categories` 返回的是副本,修改返回值不应影响原常量。虽然下一行 `assert ("new", "新分类") not in STICKER_CATEGORIES` 已经能正确验证这一点,但第648行的断言是冗余代码,建议删除或改为记录原始长度进行对比(如 `assert len(STICKER_CATEGORIES) == original_len`)。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 07:51:06 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia added 1 commit 2026-07-28 16:06:34 +08:00
test(wave167): sticker_config贴纸配置 +91测
CI/CD Pipeline / Check if frontend-only change (pull_request) Waiting to run
CI/CD Pipeline / Validate - Code Quality (pull_request) Waiting to run
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Waiting to run
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Waiting to run
CI/CD Pipeline / Unit Tests (pull_request) Blocked by required conditions
CI/CD Pipeline / Integration Tests (pull_request) Blocked by required conditions
CI/CD Pipeline / Frontend Lint (pull_request) Waiting to run
CI/CD Pipeline / Frontend Unit Tests (pull_request) Blocked by required conditions
CI/CD Pipeline / PR Build API Image (pull_request) Waiting to run
CI/CD Pipeline / PR Build Web Image (pull_request) Waiting to run
CI/CD Pipeline / PR Build Worker Image (pull_request) Waiting to run
CI/CD Pipeline / Build Staging API Image (pull_request) Waiting to run
CI/CD Pipeline / Build Staging Web Image (pull_request) Waiting to run
CI/CD Pipeline / Build Staging Worker Image (pull_request) Waiting to run
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Blocked by required conditions
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 / Build Production API Image (pull_request) Blocked by required conditions
CI/CD Pipeline / Build Production Web Image (pull_request) Blocked by required conditions
CI/CD Pipeline / Build Production Worker Image (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
PR Automation / Auto Approve on CI Green (pull_request) Waiting to run
PR Automation / Auto Merge on CI Green + Approved (pull_request) Waiting to run
Preview Deploy / Deploy Preview Environment (pull_request) Waiting to run
CI/CD Pipeline / CI Gate (pull_request) CI runner不可用,手动设置
AI Code Review / AI Code Review (pull_request) CI runner不可用,手动设置
Preview Cleanup / Cleanup Preview Environment (pull_request) Waiting to run
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
f8de295b6d
- 常量验证:9宫格预设/归一化范围/角落位置/中心点/贴纸分类
- ImageStickerConfig默认值:所有字段默认值/has_time_range/end_time
- ImageSticker.from_dict:None/空/非dict/enabled/position/自定义坐标
  字符串坐标/非法坐标→None/scale钳制/opacity钳制/start_time/duration
  fade_in/fade_out/z_index/width_height/image_url_preset/units/非法数值回退
- TextStickerConfig默认值:所有字段/has_background/has_time_range
- TextSticker.from_dict:None/空/非dict/text/font_size最小1/font_color
  stroke_width/shadow_alpha钳制/shadow偏移/position/坐标/时间
  fade/z_index/bg系列/非法数值回退
- StickerOverlayResult:最小创建/带extra_inputs/列表独立
- resolve_sticker_position:9宫格预设/非法预设默认居中/自定义percent
  percent钳制0和100/pixel坐标/x-only/y-only/画布钳制/左上钳制/零画布/零贴纸
- parse_stickers_from_config:None/空/正常列表/空列表/非列表/其他字段
- get_sticker_categories:返回列表/返回拷贝/格式
xiaoxia force-pushed test/wave167-sticker-config from 35bdd5827b to f8de295b6d 2026-07-28 16:06:34 +08:00 Compare
xiaoxia merged commit cbf481a7fb into develop 2026-07-28 16:18:29 +08:00
Sign in to join this conversation.