diff --git a/aiogram/types/reply_keyboard.py b/aiogram/types/reply_keyboard.py index ced20417..ffe07ae1 100644 --- a/aiogram/types/reply_keyboard.py +++ b/aiogram/types/reply_keyboard.py @@ -111,11 +111,13 @@ class KeyboardButton(base.TelegramObject): def __init__(self, text: base.String, request_contact: base.Boolean = None, request_location: base.Boolean = None, - request_poll: KeyboardButtonPollType = None): + request_poll: KeyboardButtonPollType = None, + **kwargs): super(KeyboardButton, self).__init__(text=text, request_contact=request_contact, request_location=request_location, - request_poll=request_poll) + request_poll=request_poll, + **kwargs) class ReplyKeyboardRemove(base.TelegramObject): diff --git a/tests/types/dataset.py b/tests/types/dataset.py index 310024cb..739e8e2c 100644 --- a/tests/types/dataset.py +++ b/tests/types/dataset.py @@ -457,3 +457,8 @@ WEBHOOK_INFO = { "has_custom_certificate": False, "pending_update_count": 0, } + +REPLY_KEYBOARD_MARKUP = { + "keyboard": [[{"text": "something here"}]], + "resize_keyboard": True, +} diff --git a/tests/types/test_reply_keyboard.py b/tests/types/test_reply_keyboard.py new file mode 100644 index 00000000..ae0b6d9e --- /dev/null +++ b/tests/types/test_reply_keyboard.py @@ -0,0 +1,12 @@ +from aiogram import types +from .dataset import REPLY_KEYBOARD_MARKUP + +reply_keyboard = types.ReplyKeyboardMarkup(**REPLY_KEYBOARD_MARKUP) + + +def test_serialize(): + assert reply_keyboard.to_python() == REPLY_KEYBOARD_MARKUP + + +def test_deserialize(): + assert reply_keyboard.to_object(reply_keyboard.to_python()) == reply_keyboard