From 2068a3719de049bb9a9c7bf6de41ec592c8414d5 Mon Sep 17 00:00:00 2001 From: OoO Date: Wed, 13 May 2026 09:27:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20Telegram=20=E5=88=86?= =?UTF-8?q?=E9=A1=9E=E6=8C=89=E9=88=95=E9=A0=90=E8=A8=AD=20callback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/telegram_bot_service.py | 2 +- tests/test_trend_telegram_bot_service.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/services/telegram_bot_service.py b/services/telegram_bot_service.py index 6cb5927..c453555 100644 --- a/services/telegram_bot_service.py +++ b/services/telegram_bot_service.py @@ -164,7 +164,7 @@ class TrendTelegramBot: ] return InlineKeyboardMarkup(keyboard) - def _get_category_keyboard(self, callback_prefix: str = "cat"): + def _get_category_keyboard(self, callback_prefix: str = "trend"): """建立分類選擇按鈕""" # 每行 3 個按鈕 keyboard = [] diff --git a/tests/test_trend_telegram_bot_service.py b/tests/test_trend_telegram_bot_service.py index 02c5a24..11fe8dc 100644 --- a/tests/test_trend_telegram_bot_service.py +++ b/tests/test_trend_telegram_bot_service.py @@ -50,6 +50,21 @@ def _run(coro): return asyncio.run(coro) +def test_default_category_keyboard_uses_handled_trend_prefix(): + from services.telegram_bot_service import CATEGORIES, TrendTelegramBot + + bot = TrendTelegramBot(token="dummy") + keyboard = bot._get_category_keyboard() + callback_values = [ + button.callback_data + for row in keyboard.inline_keyboard + for button in row + ] + + assert f"trend_{CATEGORIES[0]}" in callback_values + assert not any(value.startswith("cat_") for value in callback_values) + + def test_polling_callback_dedup_without_update_id(monkeypatch): from services.telegram_bot_service import TrendTelegramBot