mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2025-03-16 12:25:45 +01:00
Adds InputContactMessageContent class, fixes InlineQueryResultArticle tests, de_json super calls for replymarkup objects and factory for InputMessageContent #188
This commit is contained in:
parent
7c8a0e00c0
commit
f68b8c3a4a
8 changed files with 63 additions and 12 deletions
|
@ -41,6 +41,8 @@ class InlineKeyboardMarkup(ReplyMarkup):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
data = super(InlineKeyboardMarkup, InlineKeyboardMarkup).de_json(data)
|
||||
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
|
|
@ -24,4 +24,18 @@ from telegram import InputMessageContent
|
|||
|
||||
|
||||
class InputContactMessageContent(InputMessageContent):
|
||||
pass
|
||||
"""Base class for Telegram InputContactMessageContent Objects"""
|
||||
|
||||
def __init__(self,
|
||||
phone_number,
|
||||
first_name,
|
||||
last_name=None):
|
||||
# Required
|
||||
self.phone_number = phone_number
|
||||
self.first_name = first_name
|
||||
# Optionals
|
||||
self.last_name = last_name
|
||||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
return InputContactMessageContent(**data)
|
||||
|
|
|
@ -35,7 +35,4 @@ class InputLocationMessageContent(InputMessageContent):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
data = super(InputLocationMessageContent,
|
||||
InputLocationMessageContent).de_json(data)
|
||||
|
||||
return InputLocationMessageContent(**data)
|
||||
|
|
|
@ -28,4 +28,33 @@ class InputMessageContent(TelegramObject):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
pass
|
||||
data = super(InputMessageContent, InputMessageContent).de_json(data)
|
||||
|
||||
if not data:
|
||||
return None
|
||||
|
||||
try:
|
||||
from telegram import InputTextMessageContent
|
||||
return InputTextMessageContent.de_json(data)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from telegram import InputLocationMessageContent
|
||||
return InputLocationMessageContent.de_json(data)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from telegram import InputVenueMessageContent
|
||||
return InputVenueMessageContent.de_json(data)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from telegram import InputContactMessageContent
|
||||
return InputContactMessageContent.de_json(data)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
return None
|
||||
|
|
|
@ -38,7 +38,4 @@ class InputTextMessageContent(InputMessageContent):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
data = super(InputTextMessageContent,
|
||||
InputTextMessageContent).de_json(data)
|
||||
|
||||
return InputTextMessageContent(**data)
|
||||
|
|
|
@ -42,7 +42,4 @@ class InputVenueMessageContent(InputMessageContent):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
data = super(InputVenueMessageContent,
|
||||
InputVenueMessageContent).de_json(data)
|
||||
|
||||
return InputVenueMessageContent(**data)
|
||||
|
|
|
@ -27,4 +27,9 @@ class ReplyMarkup(TelegramObject):
|
|||
|
||||
@staticmethod
|
||||
def de_json(data):
|
||||
pass
|
||||
data = super(ReplyMarkup, ReplyMarkup).de_json(data)
|
||||
|
||||
if not data:
|
||||
return None
|
||||
|
||||
return data
|
||||
|
|
|
@ -40,6 +40,10 @@ class InlineQueryResultArticleTest(BaseTest, unittest.TestCase):
|
|||
self.id = 'id'
|
||||
self.type = 'article'
|
||||
self.title = 'title'
|
||||
self.input_message_content = telegram.InputTextMessageContent(
|
||||
'input_message_content')
|
||||
self.reply_markup = telegram.InlineKeyboardMarkup([[
|
||||
telegram.InlineKeyboardButton('reply_markup')]])
|
||||
self.url = 'url'
|
||||
self.hide_url = True
|
||||
self.description = 'description'
|
||||
|
@ -51,6 +55,8 @@ class InlineQueryResultArticleTest(BaseTest, unittest.TestCase):
|
|||
'type': self.type,
|
||||
'id': self.id,
|
||||
'title': self.title,
|
||||
'input_message_content': self.input_message_content.to_dict(),
|
||||
'reply_markup': self.reply_markup.to_dict(),
|
||||
'url': self.url,
|
||||
'hide_url': self.hide_url,
|
||||
'description': self.description,
|
||||
|
@ -65,6 +71,10 @@ class InlineQueryResultArticleTest(BaseTest, unittest.TestCase):
|
|||
self.assertEqual(article.type, self.type)
|
||||
self.assertEqual(article.id, self.id)
|
||||
self.assertEqual(article.title, self.title)
|
||||
self.assertDictEqual(article.input_message_content.to_dict(),
|
||||
self.input_message_content.to_dict())
|
||||
self.assertDictEqual(article.reply_markup.to_dict(),
|
||||
self.reply_markup.to_dict())
|
||||
self.assertEqual(article.url, self.url)
|
||||
self.assertEqual(article.hide_url, self.hide_url)
|
||||
self.assertEqual(article.description, self.description)
|
||||
|
|
Loading…
Add table
Reference in a new issue