test: improve coverage and raise threshold to 80% (#154)

This commit is contained in:
banteg
2026-01-16 13:19:41 +04:00
committed by GitHub
parent 92b33c5181
commit da881fcee5
26 changed files with 4282 additions and 412 deletions
+34
View File
@@ -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."