test: improve coverage and raise threshold to 80% (#154)
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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."
|
||||
Reference in New Issue
Block a user