Files
takopi/tests/test_telegram_topics_helpers.py

35 lines
1.1 KiB
Python

from dataclasses import replace
from takopi.settings import TelegramTopicsSettings
from takopi.telegram.topics import _resolve_topics_scope_raw, _topics_command_error
from tests.telegram_fakes import FakeTransport, make_cfg
def test_resolve_topics_scope_raw() -> None:
resolved, chat_ids = _resolve_topics_scope_raw("auto", 1, ())
assert resolved == "main"
assert chat_ids == frozenset({1})
resolved, chat_ids = _resolve_topics_scope_raw("projects", 1, (2, 3))
assert resolved == "projects"
assert chat_ids == frozenset({2, 3})
resolved, chat_ids = _resolve_topics_scope_raw("all", 1, (2,))
assert resolved == "all"
assert chat_ids == frozenset({1, 2})
def test_topics_command_error_for_wrong_chat() -> None:
transport = FakeTransport()
cfg = replace(
make_cfg(transport),
topics=TelegramTopicsSettings(enabled=True, scope="main"),
)
error = _topics_command_error(
cfg,
chat_id=999,
resolved_scope="main",
scope_chat_ids=frozenset({cfg.chat_id}),
)
assert error == "topics commands are only available in the main chat."