diff --git a/helper_bot/keyboards/keyboards.py b/helper_bot/keyboards/keyboards.py index 1f2f7f5..13e36e8 100644 --- a/helper_bot/keyboards/keyboards.py +++ b/helper_bot/keyboards/keyboards.py @@ -18,11 +18,11 @@ def get_reply_keyboard_for_post(): def get_reply_keyboard(BotDB, user_id): builder = ReplyKeyboardBuilder() - builder.add(types.KeyboardButton(text="📢Предложить свой пост")) - builder.add(types.KeyboardButton(text="📩Связаться с админами")) - builder.add(types.KeyboardButton(text="👋🏼Сказать пока!")) + builder.row(types.KeyboardButton(text="📢Предложить свой пост")) + builder.row(types.KeyboardButton(text="📩Связаться с админами")) + builder.row(types.KeyboardButton(text="👋🏼Сказать пока!")) if not BotDB.get_info_about_stickers(user_id=user_id): - builder.add(types.KeyboardButton(text="🤪Хочу стикеры")) + builder.row(types.KeyboardButton(text="🤪Хочу стикеры")) markup = builder.as_markup(resize_keyboard=True, one_time_keyboard=True) return markup @@ -36,12 +36,15 @@ def get_reply_keyboard_leave_chat(): def get_reply_keyboard_admin(): builder = ReplyKeyboardBuilder() - builder.add(types.KeyboardButton(text="Бан (Список)")) - builder.add(types.KeyboardButton(text="Бан по нику")) - builder.add(types.KeyboardButton(text="Бан по ID")) - builder.row() - builder.add(types.KeyboardButton(text="Разбан (список)")) - builder.add(types.KeyboardButton(text="Вернуться в бота")) + builder.row( + types.KeyboardButton(text="Бан (Список)"), + types.KeyboardButton(text="Бан по нику"), + types.KeyboardButton(text="Бан по ID") + ) + builder.row( + types.KeyboardButton(text="Разбан (список)"), + types.KeyboardButton(text="Вернуться в бота") + ) markup = builder.as_markup(resize_keyboard=True, one_time_keyboard=True) return markup diff --git a/tests/test_keyboards_and_filters.py b/tests/test_keyboards_and_filters.py index 56ba96c..0620155 100644 --- a/tests/test_keyboards_and_filters.py +++ b/tests/test_keyboards_and_filters.py @@ -4,6 +4,7 @@ from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMar from helper_bot.keyboards.keyboards import ( get_reply_keyboard, + get_reply_keyboard_admin, get_reply_keyboard_for_post, get_reply_keyboard_leave_chat, create_keyboard_with_pagination @@ -36,6 +37,10 @@ class TestKeyboards: assert keyboard.keyboard is not None assert len(keyboard.keyboard) > 0 + # Проверяем, что каждая кнопка в отдельной строке + for row in keyboard.keyboard: + assert len(row) == 1 # Каждая строка содержит только одну кнопку + # Проверяем наличие основных кнопок all_buttons = [] for row in keyboard.keyboard: @@ -97,6 +102,27 @@ class TestKeyboards: assert '👋🏼Сказать пока!' in all_buttons assert '📩Связаться с админами' in all_buttons + def test_get_reply_keyboard_admin_keyboard(self): + """Тест админской клавиатуры""" + keyboard = get_reply_keyboard_admin() + + assert isinstance(keyboard, ReplyKeyboardMarkup) + assert keyboard.keyboard is not None + assert len(keyboard.keyboard) == 2 # Две строки + + # Проверяем первую строку (3 кнопки) + first_row = keyboard.keyboard[0] + assert len(first_row) == 3 + assert first_row[0].text == "Бан (Список)" + assert first_row[1].text == "Бан по нику" + assert first_row[2].text == "Бан по ID" + + # Проверяем вторую строку (2 кнопки) + second_row = keyboard.keyboard[1] + assert len(second_row) == 2 + assert second_row[0].text == "Разбан (список)" + assert second_row[1].text == "Вернуться в бота" + def test_get_reply_keyboard_for_post(self): """Тест клавиатуры для постов""" keyboard = get_reply_keyboard_for_post()