def test_escape_markdown_v2_monospaced(self): test_str = r"mono/pre: `abc` \int (`\some \`stuff)" expected_str = "mono/pre: \\`abc\\` \\\\int (\\`\\\\some \\\\\\`stuff)" assert expected_str == helpers.escape_markdown( test_str, version=2, entity_type=MessageEntity.PRE) assert expected_str == helpers.escape_markdown( test_str, version=2, entity_type=MessageEntity.CODE)
def test_escape_markdown_v2_text_link(self): test_str = "https://url.containing/funny)cha)\\ra\\)cter\\s" expected_str = "https://url.containing/funny\\)cha\\)\\\\ra\\\\\\)cter\\\\s" assert expected_str == helpers.escape_markdown( test_str, version=2, entity_type=MessageEntity.TEXT_LINK)
async def test_send_video_default_parse_mode_3(self, default_bot, chat_id, video): test_markdown_string = "_Italic_ *Bold* `Code`" message = await default_bot.send_video( chat_id, video, caption=test_markdown_string, parse_mode="HTML" ) assert message.caption == test_markdown_string assert message.caption_markdown == escape_markdown(test_markdown_string)
async def test_send_document_default_parse_mode_2(self, default_bot, chat_id, document): test_markdown_string = "_Italic_ *Bold* `Code`" message = await default_bot.send_document( chat_id, document, caption=test_markdown_string, parse_mode=None ) assert message.caption == test_markdown_string assert message.caption_markdown == escape_markdown(test_markdown_string)
async def test_mention_markdown_v2(self, user): user.first_name = "first{name" user.last_name = "last_name" expected = "[{}](tg://user?id={})" assert user.mention_markdown_v2() == expected.format( escape_markdown(user.full_name, version=2), user.id) assert user.mention_markdown_v2("the{name>\u2022") == expected.format( "the\\{name\\>\u2022", user.id) assert user.mention_markdown_v2(user.username) == expected.format( user.username, user.id)
def test_markdown_invalid_version(self): with pytest.raises(ValueError): helpers.escape_markdown("abc", version=-1)
def test_escape_markdown_v2(self): test_str = r"a_b*c[d]e (fg) h~I`>JK#L+MN -O=|p{qr}s.t!\ \u" expected_str = r"a\_b\*c\[d\]e \(fg\) h\~I\`\>JK\#L\+MN \-O\=\|p\{qr\}s\.t\!\\ \\u" assert expected_str == helpers.escape_markdown(test_str, version=2)
def test_escape_markdown(self): test_str = "*bold*, _italic_, `code`, [text_link](http://github.com/)" expected_str = r"\*bold\*, \_italic\_, \`code\`, \[text\_link](http://github.com/)" assert expected_str == helpers.escape_markdown(test_str)