Refactor keyboard layout for improved organization and add admin keyboard tests
- Updated the keyboard layout in `get_reply_keyboard` and `get_reply_keyboard_admin` functions to use `row` for better organization of buttons. - Added unit tests for the admin keyboard to verify button arrangement and functionality. - Ensured that each button is placed in its own row for clarity in the user interface.
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user