mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-06 07:50:32 +00:00
* Added support for Bot API 7.0 * Fixed available tests * Fixed text decorations * Bot API 7.0 tests for ForwardMessages * Bot API 7.0 tests for CopyMessages * Bot API 7.0 tests for DeleteMessages * Bot API 7.0 tests for GetUserChatBoosts * Bot API 7.0 tests for SetMessageReaction * Fixed custom_emoji attribute name * Fixed tests * Test parsing CallbackQuery message (inaccessible and accessible) * Added changes description * Bot API 7.0 tests for dispatcher handle update message_reaction * Bot API 7.0 tests for dispatcher handle update message_reaction_count * Bot API 7.0 tests for dispatcher handle update chat_boost * Bot API 7.0 tests for dispatcher handle update removed_chat_boost * fix tests: update ReactionTypeCustomEmoji custom_emoji -> custom_emoji_id * micro fix Markdown V2 blockquote * add tests for Markdown tools * fix markdown test apply single entity * add tests coverage for Message.react * check that all messages and content types are covered for Message.content_type * sort imports in tests (run `make reformat lint`) * update Giveaway objects Unix time field to DateTime type * Update Message.content_type property * upgrade tests for message content_types and sent_copy * Update Giveaway type generation config * Update GiveawayWinners and PassportFile types generation configs --------- Co-authored-by: Suren Khorenyan <surenkhorenyan@gmail.com>
80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
from typing import Any, Callable, Optional, Tuple
|
|
|
|
import pytest
|
|
|
|
from aiogram.utils.markdown import (
|
|
blockquote,
|
|
bold,
|
|
code,
|
|
hblockquote,
|
|
hbold,
|
|
hcode,
|
|
hide_link,
|
|
hitalic,
|
|
hlink,
|
|
hpre,
|
|
hstrikethrough,
|
|
hunderline,
|
|
italic,
|
|
link,
|
|
pre,
|
|
strikethrough,
|
|
text,
|
|
underline,
|
|
)
|
|
|
|
|
|
class TestMarkdown:
|
|
@pytest.mark.parametrize(
|
|
"func,args,sep,result",
|
|
[
|
|
[text, ("test", "test"), " ", "test test"],
|
|
[text, ("test", "test"), "\n", "test\ntest"],
|
|
[text, ("test", "test"), None, "test test"],
|
|
[bold, ("test", "test"), " ", "*test test*"],
|
|
[hbold, ("test", "test"), " ", "<b>test test</b>"],
|
|
[italic, ("test", "test"), " ", "_\rtest test_\r"],
|
|
[hitalic, ("test", "test"), " ", "<i>test test</i>"],
|
|
[code, ("test", "test"), " ", "`test test`"],
|
|
[hcode, ("test", "test"), " ", "<code>test test</code>"],
|
|
[pre, ("test", "test"), " ", "```\ntest test\n```"],
|
|
[hpre, ("test", "test"), " ", "<pre>test test</pre>"],
|
|
[underline, ("test", "test"), " ", "__\rtest test__\r"],
|
|
[hunderline, ("test", "test"), " ", "<u>test test</u>"],
|
|
[strikethrough, ("test", "test"), " ", "~test test~"],
|
|
[hstrikethrough, ("test", "test"), " ", "<s>test test</s>"],
|
|
[link, ("test", "https://aiogram.dev"), None, "[test](https://aiogram.dev)"],
|
|
[
|
|
hlink,
|
|
("test", "https://aiogram.dev"),
|
|
None,
|
|
'<a href="https://aiogram.dev">test</a>',
|
|
],
|
|
[
|
|
hide_link,
|
|
("https://aiogram.dev",),
|
|
None,
|
|
'<a href="https://aiogram.dev">​</a>',
|
|
],
|
|
[blockquote, ("spam", "eggs"), " ", ">spam eggs"],
|
|
pytest.param(
|
|
blockquote,
|
|
("spam", "eggs"),
|
|
"\n",
|
|
">spam\n>eggs",
|
|
id="Markdown V2 blockquote multiline",
|
|
),
|
|
[hblockquote, ("spam", "eggs"), " ", "<blockquote>spam eggs</blockquote>"],
|
|
pytest.param(
|
|
hblockquote,
|
|
("spam", "eggs"),
|
|
"\n",
|
|
"<blockquote>spam\neggs</blockquote>",
|
|
id="HTML blockquote multiline",
|
|
),
|
|
],
|
|
)
|
|
def test_formatter(
|
|
self, func: Callable[[Any], Any], args: Tuple[str], sep: Optional[str], result: str
|
|
):
|
|
assert func(*args, **({"sep": sep} if sep is not None else {})) == result # type: ignore
|