49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
|
|
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,
|
||
|
|
)
|