ForcePilot/backend/test/unit/channel/startup/test_channel_registry.py

56 lines
1.6 KiB
Python
Raw Normal View History

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)