test_inlinebot.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:ptbtest 作者: Eldinnie 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号