ForcePilot/backend/test/unit/channels/plugins/feishu/conftest.py
Kris 1022121bee test: add batch of unit tests for channels module
添加了channels限界上下文的大量单元测试文件,包括:
1. 各层级通用与专用的conftest夹具
2. 核心领域模型、事件、服务测试
3. 应用层流水线、扩展处理器测试
4. 适配器与插件层测试
5. 修复并补充了pool manager测试用例
2026-07-02 03:28:19 +08:00

66 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""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