fix(ci): 修复 Validate job — black 格式化 + isort 排序 + celery mock 路径 #217
Reference in New Issue
Block a user
Delete Branch "fix/ci-validate-cache-exclude"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
CI 的 Validate job 持续失败。
根因分析
最初以为是
.cache/act/缓存目录被扫到了,实际排查发现:test_retry_failed_generation_task的 celery mock 路径错误(代码重构后改用safe_enqueue_generation_task,测试还在 mock 旧路径task_center.celery_app)注:
.cache/act/只是 runner 的工作目录路径前缀,那些文件都是项目代码本身,不是缓存文件。修复内容
1. 代码格式修复
2. Lint 工具配置加固
pyproject.toml:black 添加extend-exclude,isort 添加extend_skip_glob,排除.cache、.pytest_cache、.mypy_cache等常见缓存目录.flake8+setup.cfg:补充.cache到 exclude 列表.gitignore:添加.cache/3. 集成测试修复
test_task_center_api.py:将 2 个 generation 重试测试的 celery mock 路径从app.api.routes.task_center.celery_app改为app.core.task_enqueue.celery_app(与代码重构后的实际调用路径一致)验证结果
✅ Validate job 代码质量检查全绿(black / isort / flake8 / bandit / compileall)
✅ Unit tests 通过
✅ Integration tests:从 5 个失败减少到 4 个
剩余问题(不在本次修复范围内)
4 个 voice_clone 集成测试失败 — 业务代码重构后创建状态从
ready改为processing,测试断言未同步更新。需后端开发确认新逻辑后修改测试。test_create_with_source_audiotest_retry_failed_clonetest_full_lifecycle_create_list_get_deletetest_failed_retry_flowfix(ci): 排除 .cache 目录,修复 Validate job 因 act 缓存目录导致的 black 检查失败to fix(ci): 修复 Validate job — black 格式化 + isort 排序 + celery mock 路径PR #217 审查结论:✅ 通过(CI 代码质量修复部分)
审查范围
聚焦本次 CI 质量修复相关改动:格式化、isort 排序、.cache 排除、celery mock 路径修复。
核心改动验证
1. .cache 目录排除 ✅
四处配置全部补上了
.cache排除,act runner 缓存目录不会再被扫到:.gitignore→.cache/pyproject.toml[tool.black]extend-exclude→.cachepyproject.toml[tool.isort]extend_skip_glob→.cache/**.flake8/setup.cfgexclude→.cache2. celery mock 路径修复 ✅
改动:13 处 mock 从
app.api.routes.generation_tasks.celery_app/app.api.routes.task_center.celery_app统一改为app.core.task_enqueue.celery_app正确性:安全入队函数已从各路由文件抽到公共模块
app/core/task_enqueue.py,celery_app.send_task的实际调用点在task_enqueue模块内。mock 必须 mock 使用处(app.core.task_enqueue.celery_app)而非定义处,路径修正正确。3. 格式化 / isort 改动 ✅
pyproject.toml中 black + isort 配置(profile=black, line_length=120)一致4. 额外改进(bonus)
safe_enqueue_generation_task抽到公共模块app/core/task_enqueue.py,消除了 PR #214 中两处重复定义的技术债 ✅--cov-fail-under=50覆盖率门槛,倒逼测试质量 ✅结论
CI 相关改动全部正确,无业务逻辑风险,可合并。