chore(ci): 同步main分支测试基础设施与工程化依赖
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 25s
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 / PR Build API Image (pull_request) Failing after 1m6s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 1m3s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m6s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 19s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m4s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 25s
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 / PR Build API Image (pull_request) Failing after 1m6s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 1m3s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m6s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 19s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m4s
- 加prettier@^3.9.5 devDependency(main无此依赖导致Frontend Lint的npx交互失败) - 同步tests/conftest.py的Celery全局mock(main缺失导致Unit Tests连Redis失败)
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
"jsdom": "^24.1.0",
|
||||
"typescript": "^5.5.3",
|
||||
"vite": "^5.3.1",
|
||||
"vitest": "^1.6.0"
|
||||
"vitest": "^1.6.0",
|
||||
"prettier": "^3.9.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,3 +11,42 @@ if str(ROOT) not in sys.path:
|
||||
# 必须在任何 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()
|
||||
|
||||
Reference in New Issue
Block a user