添加了channels限界上下文的大量单元测试文件,包括: 1. 各层级通用与专用的conftest夹具 2. 核心领域模型、事件、服务测试 3. 应用层流水线、扩展处理器测试 4. 适配器与插件层测试 5. 修复并补充了pool manager测试用例
66 lines
2.5 KiB
Python
66 lines
2.5 KiB
Python
"""channels plugins/feishu 层单元测试共享 fixture。
|
||
|
||
提供 ``fake_feishu_client`` 桩,模拟 ``FeishuClient``
|
||
(``yuxi.channels.channels.plugins.feishu.feishu_client.FeishuClient``)。
|
||
飞书适配器测试通过此桩注入客户端依赖,不发起真实 HTTP 请求。
|
||
|
||
桩使用 ``AsyncMock()``,预设主要方法返回值(空 dict / 空 bytes / token
|
||
元组),调用方可按需覆盖。方法签名以 ``FeishuClient`` 实现为准。单文件
|
||
独有的 helper 应保留在对应测试文件内(见 testing-guidelines.md)。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from unittest.mock import AsyncMock
|
||
|
||
import pytest
|
||
|
||
|
||
@pytest.fixture
|
||
def fake_feishu_client() -> AsyncMock:
|
||
"""FeishuClient 桩。
|
||
|
||
``AsyncMock()`` 模拟 ``FeishuClient``,预设主要方法返回值:
|
||
- ``get_tenant_access_token`` 返回 ``("fake-token", 7200)``;
|
||
- ``send_message`` / ``update_message`` / ``recall_message`` /
|
||
``get_message`` / ``reply_message`` 等 IM API 返回 ``{}``;
|
||
- ``download_resource`` 返回 ``b""``;
|
||
- ``upload_image`` / ``upload_file`` 返回 ``{}``;
|
||
- 通讯录 / OAuth API 返回 ``{}``。
|
||
"""
|
||
client = AsyncMock()
|
||
# Token 管理
|
||
client.get_tenant_access_token.return_value = ("fake-token", 7200)
|
||
# 通用请求
|
||
client.request.return_value = {}
|
||
# IM API
|
||
client.send_message.return_value = {}
|
||
client.update_message.return_value = {}
|
||
client.recall_message.return_value = {}
|
||
client.get_message.return_value = {}
|
||
client.reply_message.return_value = {}
|
||
client.batch_get_messages.return_value = {}
|
||
client.update_card.return_value = {}
|
||
client.streaming_start.return_value = {}
|
||
client.streaming_update.return_value = {}
|
||
client.streaming_stop.return_value = {}
|
||
client.add_reaction.return_value = {}
|
||
client.delete_reaction.return_value = {}
|
||
client.pin_message.return_value = {}
|
||
client.unpin_message.return_value = {}
|
||
# 资源上传/下载
|
||
client.upload_image.return_value = {}
|
||
client.upload_file.return_value = {}
|
||
client.download_resource.return_value = b""
|
||
# 通讯录 API
|
||
client.get_user.return_value = {}
|
||
client.search_users.return_value = {}
|
||
client.get_group_list.return_value = {}
|
||
client.get_group_members.return_value = {}
|
||
client.get_group_detail.return_value = {}
|
||
# OAuth API
|
||
client.get_qr_login_url.return_value = {}
|
||
client.poll_qr_login_status.return_value = {}
|
||
client.revoke_token.return_value = {}
|
||
return client
|