test: P3-1 第二十波 wechat_oauth_service单元测试 28个 #726

Merged
xiaoxia merged 7 commits from feat/p3-1-wechat-oauth-tests into develop 2026-07-23 09:56:25 +08:00
Owner

变更内容

  • MemoryStateStore 6个
  • is_configured 5个
  • generate_auth_url 5个
  • handle_callback 9个
  • WechatUserInfo + 工厂函数 3个
  • 合计 28 个测试全部通过

测试结果

28 passed in 4.77s
### 变更内容 - MemoryStateStore 6个 - is_configured 5个 - generate_auth_url 5个 - handle_callback 9个 - WechatUserInfo + 工厂函数 3个 - 合计 **28 个**测试全部通过 ### 测试结果 ``` 28 passed in 4.77s ```

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #726 | | 预览链接 | [https://pr-726.preview.xiaoxiajianji.com](https://pr-726.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-07-22 19:27:05 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-22 19:27:05 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia added 6 commits 2026-07-22 22:32:50 +08:00
- generate 参数校验/正常生成/自定义参数 8个
- generate 频控(冷却+每日上限+自定义参数)10个
- verify 参数校验/正常验证/异常场景 11个
- 验证码类型隔离 + 常量校验 3个
- 合计 32 个测试全部通过
- CreateJobUseCase 3个
- SubmitJobUseCase 4个
- UpdateJobProgressUseCase 3个
- CompleteJobUseCase 4个
- FailJobUseCase 3个
- RetryJobUseCase 3个
- CancelJobUseCase 5个
- GetJobUseCase 2个
- ListJobsUseCase 5个
- GetJobStatisticsUseCase 1个
- Command对象 4个
- 合计 37 个测试全部通过
- CreateGenerationTaskUseCase 3个
- GetGenerationTaskUseCase 2个
- ListUserTasksFilteredUseCase 4个
- RetryGenerationTaskUseCase 5个
- Command/Filter/Result对象 3个
- 合计 17 个测试全部通过
- MemoryStateStore 6个
- is_configured 5个
- generate_auth_url 5个
- handle_callback 9个
- WechatUserInfo + 工厂函数 3个
- 合计 28 个测试全部通过
fix(ci): auto-fix lint/format issues
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m28s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m25s
AI Code Review / AI Code Review (pull_request) Successful in 19m55s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 26s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 24s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 23s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 43s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 1m25s
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 / 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 / PR Build API Image (pull_request) Successful in 3m24s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 5m12s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 40s
CI/CD Pipeline / Staging API Integration Tests (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 / Unit Tests (pull_request) Successful in 2m22s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11m8s
4392acf27c
xiaoxia force-pushed feat/p3-1-wechat-oauth-tests from 9a131b6f6f to 4392acf27c 2026-07-22 22:32:50 +08:00 Compare
xiaoxia added 1 commit 2026-07-23 09:50:26 +08:00
fix: 用develop版本的pr_auto_scan.py解决冲突
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 46s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 46s
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 - Migration (alembic) (pull_request) Successful in 47s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m4s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 1m36s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 43s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m4s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m54s
AI Code Review / AI Code Review (pull_request) Successful in 5m9s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 8m20s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 45s
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 / PR Build Worker Image (pull_request) Successful in 15m6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 13s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m35s
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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 50m48s
4c84fd22b3
Collaborator

代码审查结果 - PR #726

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

  1. scripts/ci/pr_auto_scan.py 第300行:字典键名拼写错误,导致获取分支名为空

    • 问题描述:代码将 pr.get("base", {}).get("ref", "") 修改为了 get("re", "")"re" 并不是 GitHub API 返回的标准字段,应该是 "ref"。这将导致 base_ref 变量始终为空字符串,如果后续逻辑依赖此变量判断分支,将导致逻辑错误。
    • 修改建议:将 "re" 改回 "ref"
  2. scripts/ci/pr_auto_scan.py 第392行:缺少 f-string 前缀,导致无法格式化输出

    • 问题描述:打印语句中使用了 {'DRY-RUN' if dry_run else '正式执行'} 这种表达式,但字符串前缺少 f 前缀。Python 会将其作为普通字符串字面量处理,直接打印出大括号和表达式内容,而不是预期的 "DRY-RUN" 或 "正式执行"。
    • 修改建议:在引号前加上 f,即 print(f" 模式: ...")

💡 建议(2个可选)

  1. scripts/ci/pr_auto_scan.py 第139行max 函数排序的健壮性建议

    • 具体内容:在按 created_at 查找最新评论时,使用了 c.get("created_at", "") 作为 key。如果 API 返回的数据中某些评论缺失 created_at 字段,它们都会被映射为空字符串,导致 max 的结果不确定(取决于 Python 排序稳定性)。建议过滤掉此字段缺失的评论,或使用更安全的默认值(如极小时间戳)。
  2. scripts/ci/pr_auto_scan.py 第116-145行:AI 审查结果解析逻辑过于脆弱

    • 具体内容:get_ai_review_result 函数依赖正则表达式解析 AI 生成的评论正文(如匹配 ### ⚠️严重问题数量)。AI 生成的内容具有不确定性,一旦格式微调(例如多了一个空格、emoji 变化),解析就会失效。建议:如果可能,要求 AI 审评机器人输出结构化的 JSON 数据块在评论中,脚本优先解析 JSON,降级使用正则,以提高鲁棒性。

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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 09:56:23 | 模型:

## 代码审查结果 - PR #726 ### ⚠️ 问题(2个需要修改) 1. **scripts/ci/pr_auto_scan.py 第300行**:字典键名拼写错误,导致获取分支名为空 - 问题描述:代码将 `pr.get("base", {}).get("ref", "")` 修改为了 `get("re", "")`。`"re"` 并不是 GitHub API 返回的标准字段,应该是 `"ref"`。这将导致 `base_ref` 变量始终为空字符串,如果后续逻辑依赖此变量判断分支,将导致逻辑错误。 - 修改建议:将 `"re"` 改回 `"ref"`。 2. **scripts/ci/pr_auto_scan.py 第392行**:缺少 f-string 前缀,导致无法格式化输出 - 问题描述:打印语句中使用了 `{'DRY-RUN' if dry_run else '正式执行'}` 这种表达式,但字符串前缺少 `f` 前缀。Python 会将其作为普通字符串字面量处理,直接打印出大括号和表达式内容,而不是预期的 "DRY-RUN" 或 "正式执行"。 - 修改建议:在引号前加上 `f`,即 `print(f" 模式: ...")`。 ### 💡 建议(2个可选) 1. **scripts/ci/pr_auto_scan.py 第139行**:`max` 函数排序的健壮性建议 - 具体内容:在按 `created_at` 查找最新评论时,使用了 `c.get("created_at", "")` 作为 key。如果 API 返回的数据中某些评论缺失 `created_at` 字段,它们都会被映射为空字符串,导致 `max` 的结果不确定(取决于 Python 排序稳定性)。建议过滤掉此字段缺失的评论,或使用更安全的默认值(如极小时间戳)。 2. **scripts/ci/pr_auto_scan.py 第116-145行**:AI 审查结果解析逻辑过于脆弱 - 具体内容:`get_ai_review_result` 函数依赖正则表达式解析 AI 生成的评论正文(如匹配 `### ⚠️` 或 `严重问题数量`)。AI 生成的内容具有不确定性,一旦格式微调(例如多了一个空格、emoji 变化),解析就会失效。建议:如果可能,要求 AI 审评机器人输出结构化的 JSON 数据块在评论中,脚本优先解析 JSON,降级使用正则,以提高鲁棒性。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 09:56:23 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit ac724a07a0 into develop 2026-07-23 09:56:25 +08:00

🗑️ 预览环境已清理

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

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

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