ForcePilot/backend/package/yuxi/channel/sdk/testing/fixtures.py

49 lines
1.3 KiB
Python
Raw Normal View History

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,
)