fix #660 prepare parse mode for input_message_content of InlineQueryResult

This commit is contained in:
darksidecat 2021-08-08 19:13:02 +03:00
parent 0ca9f98baf
commit 7e6567feb5
2 changed files with 25 additions and 2 deletions

View file

@ -37,5 +37,11 @@ class AnswerInlineQuery(TelegramMethod[bool]):
def build_request(self, bot: Bot) -> Request:
data: Dict[str, Any] = self.dict()
prepare_parse_mode(bot, data["results"])
input_message_contents = []
for result in data["results"]:
if result.get("input_message_content", None) is not None:
input_message_contents.append(result.get("input_message_content"))
prepare_parse_mode(bot, data["results"] + input_message_contents)
return Request(method="answerInlineQuery", data=data)

View file

@ -2,7 +2,7 @@ import pytest
from aiogram import Bot
from aiogram.methods import AnswerInlineQuery, Request
from aiogram.types import InlineQueryResult, InlineQueryResultPhoto
from aiogram.types import InlineQueryResult, InlineQueryResultPhoto, InputTextMessageContent
from tests.mocked_bot import MockedBot
pytestmark = pytest.mark.asyncio
@ -40,3 +40,20 @@ class TestAnswerInlineQuery:
new_bot = Bot(token="42:TEST", parse_mode="HTML")
request = query.build_request(new_bot)
assert request.data["results"][0]["parse_mode"] == "HTML"
def test_parse_mode_input_message_content(self, bot: MockedBot):
query = AnswerInlineQuery(
inline_query_id="query id",
results=[InlineQueryResultPhoto(
id="result id",
photo_url="photo",
thumb_url="thumb",
input_message_content=InputTextMessageContent(message_text="test")
)],
)
request = query.build_request(bot)
assert request.data["results"][0]["input_message_content"]["parse_mode"] is None
new_bot = Bot(token="42:TEST", parse_mode="HTML")
request = query.build_request(new_bot)
assert request.data["results"][0]["input_message_content"]["parse_mode"] == "HTML"