6eac0b2cf2
Worker Base Image Build / Build Worker Base Images (worker-base-builder-cache, infra/docker/worker-base-builder.Dockerfile, worker-base-builder, builder) (push) Failing after 1m54s
Worker Base Image Build / Build Worker Base Images (worker-base-runtime-cache, infra/docker/worker-base-runtime.Dockerfile, worker-base-runtime, runtime) (push) Failing after 1m36s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Validate - Code Quality (push) Failing after 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m4s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m2s
CI/CD Pipeline / Unit Tests (push) Successful in 3m38s
CI/CD Pipeline / Integration Tests (push) Successful in 2m0s
CI/CD Pipeline / Frontend Lint (push) Successful in 28s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 44s
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / Build Staging API Image (push) Failing after 2m16s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 8m14s
CI/CD Pipeline / Build Staging Worker Image (push) Failing after 2m0s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (push) Has been skipped
同步内容: 1. CI流水线配置(ci-pipeline.yml)与develop对齐 2. PR构建脚本docker_build_only.sh增加buildx→docker build回退 3. pre-build步骤worker基础镜像构建增加buildx回退 4. 单元测试脚本全量覆盖率改为仅报告不阻塞 5. diff-cover依赖加入requirements-dev.txt 6. worker base builder/runtime Dockerfile同步 7. test_config_oss.py clear=False→clear=True修复OSS污染 8. Frontend Lint增加prettier依赖
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
if str(ROOT) not in sys.path:
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
# 必须在任何 app 模块导入之前设置,否则 pydantic Settings 验证失败
|
|
os.environ.setdefault("JWT_SECRET_KEY", "test-secret-key-for-all-tests")
|
|
os.environ.setdefault("USE_IN_MEMORY_DB", "True")
|
|
|
|
|
|
# ── Celery 全局 mock ──────────────────────────────────────────────────────
|
|
# CI 环境没有 Redis,所有 Celery 异步任务都 mock 掉,避免连接超时报错
|
|
# 集成测试只测 API 层逻辑(参数校验、权限、DB 操作),异步任务由 worker 单测覆盖
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
|
|
def _mock_celery_task():
|
|
"""全局 mock Celery 任务的 delay/apply_async/send_task 方法。"""
|
|
from celery import Celery, Task
|
|
|
|
def _mock_delay(self, *args, **kwargs):
|
|
mock_result = MagicMock()
|
|
mock_result.id = "mock-task-id"
|
|
mock_result.state = "PENDING"
|
|
mock_result.ready.return_value = False
|
|
mock_result.get.return_value = None
|
|
return mock_result
|
|
|
|
def _mock_apply_async(self, *args, **kwargs):
|
|
return _mock_delay(self, *args, **kwargs)
|
|
|
|
def _mock_send_task(self, name, *args, **kwargs):
|
|
mock_result = MagicMock()
|
|
mock_result.id = f"mock-{name}"
|
|
mock_result.state = "PENDING"
|
|
mock_result.ready.return_value = False
|
|
mock_result.get.return_value = None
|
|
return mock_result
|
|
|
|
Task.delay = _mock_delay
|
|
Task.apply_async = _mock_apply_async
|
|
Celery.send_task = _mock_send_task
|
|
|
|
|
|
# 在任何 app 模块导入之前就 patch 掉
|
|
_mock_celery_task()
|