def test_inline_bot(self):
# create some handlers and add them
def escape_markdown(text):
"""Helper function to escape telegram markup symbols"""
escape_chars = '\*_`\['
return re.sub(r'([%s])' % escape_chars, r'\\\1', text)
def inlinequery(bot, update):
query = update.inline_query.query
results = list()
results.append(InlineQueryResultArticle(id=uuid4(),
title="Caps",
input_message_content=InputTextMessageContent(
query.upper())))
results.append(InlineQueryResultArticle(id=uuid4(),
title="Bold",
input_message_content=InputTextMessageContent(
"*%s*" % escape_markdown(query),
parse_mode=ParseMode.MARKDOWN)))
results.append(InlineQueryResultArticle(id=uuid4(),
title="Italic",
input_message_content=InputTextMessageContent(
"_%s_" % escape_markdown(query),
parse_mode=ParseMode.MARKDOWN)))
update.inline_query.answer(results)
dp = self.updater.dispatcher
dp.add_handler(InlineQueryHandler(inlinequery))
self.updater.start_polling()
# Now test the handler
u1 = self.iqg.get_inline_query(query="test data")
self.bot.insertUpdate(u1)
data = self.bot.sent_messages[-1]
self.assertEqual(len(data['results']), 3)
results = data['results']
self.assertEqual(results[0]['title'], "Caps")
self.assertEqual(results[0]['input_message_content']['message_text'], "TEST DATA")
self.assertEqual(results[1]['title'], "Bold")
self.assertEqual(results[1]['input_message_content']['message_text'], "*test data*")
self.assertEqual(results[2]['title'], "Italic")
self.assertEqual(results[2]['input_message_content']['message_text'], "_test data_")
self.updater.stop()
评论列表
文章目录