Add set_member_tag shortcut tests and align decoration expectations

This commit is contained in:
Codex Agent 2026-03-02 08:39:41 +00:00
parent a126f8e0b1
commit 705403b2b9
6 changed files with 147 additions and 8 deletions

View file

@ -9,6 +9,7 @@ from aiogram.utils.formatting import (
CashTag,
Code,
CustomEmoji,
DateTime,
Email,
ExpandableBlockQuote,
HashTag,
@ -93,7 +94,7 @@ class TestNode:
],
[
Pre("test", language="python"),
'<pre><code class="language-python">test</code></pre>',
'<pre><code language="language-python">test</code></pre>',
],
[
TextLink("test", url="https://example.com"),
@ -105,7 +106,7 @@ class TestNode:
],
[
CustomEmoji("test", custom_emoji_id="42"),
'<tg-emoji emoji-id="42">test</tg-emoji>',
'<tg-emoji emoji_id="42">test</tg-emoji>',
],
[
BlockQuote("test"),
@ -115,6 +116,10 @@ class TestNode:
ExpandableBlockQuote("test"),
"<blockquote expandable>test</blockquote>",
],
[
DateTime("test", unix_time=42, date_time_format="yMd"),
'<tg-time unix="42" format="yMd">test</tg-time>',
],
],
)
def test_render_plain_only(self, node: Text, result: str):
@ -358,6 +363,22 @@ class TestUtils:
assert isinstance(node, Bold)
assert node._body == ("test",)
def test_apply_entity_date_time(self):
node = _apply_entity(
MessageEntity(
type=MessageEntityType.DATE_TIME,
offset=0,
length=4,
unix_time=42,
date_time_format="yMd",
),
"test",
)
assert isinstance(node, DateTime)
assert node._body == ("test",)
assert node._params["unix_time"] == 42
assert node._params["date_time_format"] == "yMd"
def test_as_line(self):
node = as_line("test", "test", "test")
assert isinstance(node, Text)

View file

@ -25,7 +25,7 @@ class TestTextDecoration:
[
html_decoration,
MessageEntity(type="pre", offset=0, length=5, language="python"),
'<pre><code class="language-python">test</code></pre>',
'<pre><code language="language-python">test</code></pre>',
],
[html_decoration, MessageEntity(type="underline", offset=0, length=5), "<u>test</u>"],
[
@ -57,7 +57,7 @@ class TestTextDecoration:
[
html_decoration,
MessageEntity(type="custom_emoji", offset=0, length=5, custom_emoji_id="42"),
'<tg-emoji emoji-id="42">test</tg-emoji>',
'<tg-emoji emoji_id="42">test</tg-emoji>',
],
[
html_decoration,
@ -74,6 +74,17 @@ class TestTextDecoration:
MessageEntity(type="expandable_blockquote", offset=0, length=5),
"<blockquote expandable>test</blockquote>",
],
[
html_decoration,
MessageEntity(
type="date_time",
offset=0,
length=5,
unix_time=42,
date_time_format="yMd",
),
'<tg-time unix="42" format="yMd">test</tg-time>',
],
[markdown_decoration, MessageEntity(type="bold", offset=0, length=5), "*test*"],
[markdown_decoration, MessageEntity(type="italic", offset=0, length=5), "_\rtest_\r"],
[markdown_decoration, MessageEntity(type="code", offset=0, length=5), "`test`"],
@ -102,7 +113,7 @@ class TestTextDecoration:
[
markdown_decoration,
MessageEntity(type="custom_emoji", offset=0, length=5, custom_emoji_id="42"),
"![test](tg://emoji?id=42)",
"![test](tg://emoji?emoji_id=42)",
],
[
markdown_decoration,
@ -124,6 +135,17 @@ class TestTextDecoration:
MessageEntity(type="expandable_blockquote", offset=0, length=5),
">test||",
],
[
markdown_decoration,
MessageEntity(
type="date_time",
offset=0,
length=5,
unix_time=42,
date_time_format="yMd",
),
"![test](tg://time?unix=42&format=yMd)",
],
],
)
def test_apply_single_entity(