docs: CURRENT-FOCUS 看板 2026-06-22 凌晨 sprint 进展(38→13 测试修复 + MkDocs + patch1 清理 + 4 agent 复核)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+23
-10
@@ -285,6 +285,16 @@ async def _mock_get_user_info_default(user_id: str, **kwargs):
|
||||
mock_wecom_module.get_user_info.side_effect = _mock_get_user_info_default
|
||||
mock_wecom_module.get_department_users.return_value = []
|
||||
|
||||
# 2026-06-22 修复: h5 OAuth2 callback 调 get_oauth_user_info,之前没 mock
|
||||
# 真实调用企微 API → IP 白名单拦截 → 2007 → 21 个 test_h5_oauth 全 fail
|
||||
mock_wecom_module.get_oauth_user_info.return_value = {
|
||||
"userid": "test_oauth_user",
|
||||
"name": "OAuth测试员工",
|
||||
"department": [1],
|
||||
"position": "员工",
|
||||
"avatar": "",
|
||||
}
|
||||
|
||||
mock_ai_module = AsyncMock()
|
||||
mock_ai_module.generate_response.return_value = "这是AI的模拟回复"
|
||||
|
||||
@@ -365,16 +375,19 @@ async def client(db_session: AsyncSession, mock_redis: MockRedis) -> AsyncGenera
|
||||
mock_ai = mock_ai_module
|
||||
|
||||
# Patch WecomService 类(端点函数中会新建实例)
|
||||
# 注意:只 patch 模块中实际引用的名字
|
||||
# conversations.py 导入了 WecomService,但没有导入 AIService
|
||||
with patch("app.api.conversations.WecomService", return_value=mock_wecom):
|
||||
# h5.py 和 agents.py 也需要 patch
|
||||
with patch("app.api.h5.WecomService", return_value=mock_wecom):
|
||||
with patch("app.api.agents.WecomService", return_value=mock_wecom):
|
||||
with patch("app.api.agents._get_redis", return_value=mock_redis):
|
||||
transport = ASGITransport(app=app)
|
||||
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
||||
yield ac
|
||||
# 2026-06-22 修复: 必须 patch "app.services.wecom_service.WecomService"
|
||||
# 而不是 "app.api.h5.WecomService" — 因为 dep_wecom_service() 工厂函数
|
||||
# 在 app.services.wecom_service 模块内部 import WecomService,
|
||||
# h5.py/agents.py 模块本身没 import WecomService,patch 它不生效
|
||||
with patch("app.services.wecom_service.WecomService", return_value=mock_wecom):
|
||||
# 兼容历史: 部分代码可能仍然直接 import WecomService
|
||||
with patch("app.api.conversations.WecomService", return_value=mock_wecom):
|
||||
with patch("app.api.h5.WecomService", return_value=mock_wecom):
|
||||
with patch("app.api.agents.WecomService", return_value=mock_wecom):
|
||||
with patch("app.api.agents._get_redis", return_value=mock_redis):
|
||||
transport = ASGITransport(app=app)
|
||||
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
||||
yield ac
|
||||
|
||||
app.dependency_overrides.clear()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user