Exemple #1
0
    def test_de_json(self, bot):
        json_dict = {
            "text": self.text,
            "url": self.url,
            "callback_data": self.callback_data,
            "switch_inline_query": self.switch_inline_query,
            "switch_inline_query_current_chat": self.switch_inline_query_current_chat,
            "callback_game": self.callback_game.to_dict(),
            "web_app": self.web_app.to_dict(),
            "login_url": self.login_url.to_dict(),
            "pay": self.pay,
        }

        inline_keyboard_button = InlineKeyboardButton.de_json(json_dict, None)
        assert inline_keyboard_button.text == self.text
        assert inline_keyboard_button.url == self.url
        assert inline_keyboard_button.callback_data == self.callback_data
        assert inline_keyboard_button.switch_inline_query == self.switch_inline_query
        assert (
            inline_keyboard_button.switch_inline_query_current_chat
            == self.switch_inline_query_current_chat
        )
        # CallbackGame has empty _id_attrs, so just test if the class is created.
        assert isinstance(inline_keyboard_button.callback_game, CallbackGame)
        assert inline_keyboard_button.pay == self.pay
        assert inline_keyboard_button.login_url == self.login_url
        assert inline_keyboard_button.web_app == self.web_app

        none = InlineKeyboardButton.de_json({}, bot)
        assert none is None
    def de_json(cls, data, bot):
        if not data:
            return None
        keyboard = []
        for row in data['inline_keyboard']:
            tmp = []
            for col in row:
                tmp.append(InlineKeyboardButton.de_json(col, bot))
            keyboard.append(tmp)

        return cls(keyboard)
Exemple #3
0
    def de_json(cls, data: Optional[JSONDict], bot: 'Bot') -> Optional['InlineKeyboardMarkup']:
        data = cls.parse_data(data)

        if not data:
            return None

        keyboard = []
        for row in data['inline_keyboard']:
            tmp = []
            for col in row:
                btn = InlineKeyboardButton.de_json(col, bot)
                if btn:
                    tmp.append(btn)
            keyboard.append(tmp)

        return cls(keyboard)
Exemple #4
0
    def test_de_json(self, bot):
        json_dict = {
            'text': self.text,
            'url': self.url,
            'callback_data': self.callback_data,
            'switch_inline_query': self.switch_inline_query,
            'switch_inline_query_current_chat': self.switch_inline_query_current_chat,
            'callback_game': self.callback_game,
            'pay': self.pay
        }

        inline_keyboard_button = InlineKeyboardButton.de_json(json_dict, None)
        assert inline_keyboard_button.text == self.text
        assert inline_keyboard_button.url == self.url
        assert inline_keyboard_button.callback_data == self.callback_data
        assert inline_keyboard_button.switch_inline_query == self.switch_inline_query
        assert (inline_keyboard_button.switch_inline_query_current_chat
                == self.switch_inline_query_current_chat)
        assert inline_keyboard_button.callback_game == self.callback_game
        assert inline_keyboard_button.pay == self.pay