mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add icon and style args to keyboard builders (#1769)
This commit is contained in:
parent
c73db32e86
commit
fa844fce59
3 changed files with 100 additions and 0 deletions
|
|
@ -214,11 +214,63 @@ class TestKeyboardBuilder:
|
|||
"builder_type,kwargs,expected",
|
||||
[
|
||||
[ReplyKeyboardBuilder, {"text": "test"}, KeyboardButton(text="test")],
|
||||
[
|
||||
ReplyKeyboardBuilder,
|
||||
{"text": "test", "icon_custom_emoji_id": "emoji-id"},
|
||||
KeyboardButton(text="test", icon_custom_emoji_id="emoji-id"),
|
||||
],
|
||||
[
|
||||
ReplyKeyboardBuilder,
|
||||
{"text": "test", "style": "success"},
|
||||
KeyboardButton(text="test", style="success"),
|
||||
],
|
||||
[
|
||||
ReplyKeyboardBuilder,
|
||||
{"text": "test", "icon_custom_emoji_id": "emoji-id", "style": "success"},
|
||||
KeyboardButton(
|
||||
text="test",
|
||||
icon_custom_emoji_id="emoji-id",
|
||||
style="success",
|
||||
),
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder,
|
||||
{"text": "test", "callback_data": "callback"},
|
||||
InlineKeyboardButton(text="test", callback_data="callback"),
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder,
|
||||
{
|
||||
"text": "test",
|
||||
"icon_custom_emoji_id": "emoji-id",
|
||||
"callback_data": "callback",
|
||||
},
|
||||
InlineKeyboardButton(
|
||||
text="test",
|
||||
icon_custom_emoji_id="emoji-id",
|
||||
callback_data="callback",
|
||||
),
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder,
|
||||
{"text": "test", "style": "primary", "callback_data": "callback"},
|
||||
InlineKeyboardButton(text="test", style="primary", callback_data="callback"),
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder,
|
||||
{
|
||||
"text": "test",
|
||||
"icon_custom_emoji_id": "emoji-id",
|
||||
"style": "primary",
|
||||
"callback_data": "callback",
|
||||
},
|
||||
InlineKeyboardButton(
|
||||
text="test",
|
||||
icon_custom_emoji_id="emoji-id",
|
||||
style="primary",
|
||||
callback_data="callback",
|
||||
),
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder,
|
||||
{"text": "test", "callback_data": MyCallback(value="test")},
|
||||
|
|
@ -242,6 +294,45 @@ class TestKeyboardBuilder:
|
|||
def test_as_markup(self, builder, expected):
|
||||
assert isinstance(builder.as_markup(), expected)
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"builder,button_kwargs,icon_custom_emoji_id,style",
|
||||
[
|
||||
[
|
||||
ReplyKeyboardBuilder(),
|
||||
{"text": "test", "icon_custom_emoji_id": "emoji-id", "style": "success"},
|
||||
"emoji-id",
|
||||
"success",
|
||||
],
|
||||
[
|
||||
InlineKeyboardBuilder(),
|
||||
{
|
||||
"text": "test",
|
||||
"icon_custom_emoji_id": "emoji-id",
|
||||
"style": "primary",
|
||||
"callback_data": "callback",
|
||||
},
|
||||
"emoji-id",
|
||||
"primary",
|
||||
],
|
||||
],
|
||||
)
|
||||
def test_as_markup_preserves_icon_and_style(
|
||||
self,
|
||||
builder,
|
||||
button_kwargs,
|
||||
icon_custom_emoji_id,
|
||||
style,
|
||||
):
|
||||
builder.button(**button_kwargs)
|
||||
markup = builder.as_markup()
|
||||
if isinstance(markup, ReplyKeyboardMarkup):
|
||||
button = markup.keyboard[0][0]
|
||||
else:
|
||||
button = markup.inline_keyboard[0][0]
|
||||
|
||||
assert button.icon_custom_emoji_id == icon_custom_emoji_id
|
||||
assert button.style == style
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"markup,builder_type",
|
||||
[
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue