from __future__ import annotations from dataclasses import dataclass from yuxi.channel.capabilities import ChannelCapabilities @dataclass class FixtureFactory: @staticmethod def capabilities(**overrides) -> ChannelCapabilities: defaults = { "chat_types": ["direct", "group"], "message_types": ["text"], "streaming": False, "streaming_mode": None, "block_streaming": False, } defaults.update(overrides) return ChannelCapabilities(**defaults) @staticmethod def preview_streaming_caps() -> ChannelCapabilities: return FixtureFactory.capabilities( streaming=True, streaming_mode=None, ) @staticmethod def block_streaming_caps() -> ChannelCapabilities: return FixtureFactory.capabilities( streaming=True, streaming_mode="block", block_streaming=True, ) @staticmethod def card_kit_caps() -> ChannelCapabilities: return FixtureFactory.capabilities( streaming=True, streaming_mode="card_kit", adaptive_cards=True, ) @staticmethod def no_streaming_caps() -> ChannelCapabilities: return FixtureFactory.capabilities( streaming=False, )