dce9e31bde
- 新增 JWT 认证模块,支持登录/注册/用户管理 - 新增文件上传接口,支持 .txt/.md/.html/.pdf/.docx 等格式解析入库 - 新增检索结果 AI 总结功能 - 新增文本去重缓存机制 - 新增全局认证夹具简化测试 - 新增配置项与环境变量支持 - 完善文档与测试覆盖
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
"""pytest 全局夹具:覆盖 JWT 认证依赖,让现有 API 测试默认以 admin 身份运行
|
||
|
||
业务接口(search/document/knowledge)已加 Depends(get_current_user)、
|
||
DELETE /documents 加了 Depends(require_admin)。这里通过 autouse 夹具把两个依赖
|
||
统一替换为返回固定 admin AuthUser 的 lambda,使现有 API 测试无需改动即可通过认证。
|
||
单个测试需要走真实认证逻辑时(如 tests/test_auth.py),可在测试函数内
|
||
pop 掉对应 override,autouse fixture yield 后会统一 clear。
|
||
"""
|
||
|
||
from datetime import UTC, datetime
|
||
|
||
import pytest
|
||
|
||
from app.core.auth import get_current_user, require_admin
|
||
from app.main import app
|
||
from app.models.auth import AuthUser
|
||
|
||
TEST_USER = AuthUser(username="testuser", role="admin", created_at=datetime.now(UTC))
|
||
|
||
|
||
@pytest.fixture(autouse=True)
|
||
def override_auth():
|
||
"""所有测试默认以 admin 身份运行;测试结束清理 dependency_overrides"""
|
||
app.dependency_overrides[get_current_user] = lambda: TEST_USER
|
||
app.dependency_overrides[require_admin] = lambda: TEST_USER
|
||
yield
|
||
app.dependency_overrides.clear()
|