完成渠道模块的单元测试目录搭建,新增多个领域模型、端口、中间件、事件、服务以及基础设施层的单元测试文件,同时补充了conftest.py的环境变量配置,完善测试基础环境。
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from yuxi.channel.channels._registry import ChannelRegistry, get_registered_channels
|
|
|
|
|
|
class TestChannelRegistry:
|
|
@pytest.fixture
|
|
def registry(self):
|
|
return ChannelRegistry()
|
|
|
|
def test_register(self, registry):
|
|
adapter_cls = MagicMock()
|
|
registry.register("web", adapter_cls)
|
|
assert "web" in registry._channels
|
|
assert registry._channels["web"] is adapter_cls
|
|
|
|
def test_get(self, registry):
|
|
adapter_cls = MagicMock()
|
|
registry.register("web", adapter_cls)
|
|
result = registry.get("web")
|
|
assert result is adapter_cls
|
|
|
|
def test_get_not_found(self, registry):
|
|
result = registry.get("unknown")
|
|
assert result is None
|
|
|
|
def test_unregister(self, registry):
|
|
adapter_cls = MagicMock()
|
|
registry.register("web", adapter_cls)
|
|
registry.unregister("web")
|
|
assert "web" not in registry._channels
|
|
|
|
def test_list(self, registry):
|
|
adapter_cls1 = MagicMock()
|
|
adapter_cls2 = MagicMock()
|
|
registry.register("web", adapter_cls1)
|
|
registry.register("feishu", adapter_cls2)
|
|
channels = registry.list()
|
|
assert "web" in channels
|
|
assert "feishu" in channels
|
|
assert len(channels) == 2
|
|
|
|
def test_clear(self, registry):
|
|
adapter_cls = MagicMock()
|
|
registry.register("web", adapter_cls)
|
|
registry.clear()
|
|
assert len(registry._channels) == 0
|
|
|
|
def test_get_registered_channels(self):
|
|
channels = get_registered_channels()
|
|
assert isinstance(channels, dict)
|