mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add tests for date_time formatting with Unix time and datetime objects
This commit is contained in:
parent
ebfab22d64
commit
50e7b3f755
2 changed files with 82 additions and 0 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from aiogram.enums import MessageEntityType
|
from aiogram.enums import MessageEntityType
|
||||||
|
|
@ -120,6 +122,10 @@ class TestNode:
|
||||||
DateTime("test", unix_time=42, date_time_format="yMd"),
|
DateTime("test", unix_time=42, date_time_format="yMd"),
|
||||||
'<tg-time unix="42" format="yMd">test</tg-time>',
|
'<tg-time unix="42" format="yMd">test</tg-time>',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
DateTime("test", unix_time=42),
|
||||||
|
'<tg-time unix="42">test</tg-time>',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_render_plain_only(self, node: Text, result: str):
|
def test_render_plain_only(self, node: Text, result: str):
|
||||||
|
|
@ -379,6 +385,22 @@ class TestUtils:
|
||||||
assert node._params["unix_time"] == 42
|
assert node._params["unix_time"] == 42
|
||||||
assert node._params["date_time_format"] == "yMd"
|
assert node._params["date_time_format"] == "yMd"
|
||||||
|
|
||||||
|
def test_date_time_with_datetime_object(self):
|
||||||
|
dt = datetime(2024, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
|
||||||
|
node = DateTime("test", unix_time=dt)
|
||||||
|
assert isinstance(node, DateTime)
|
||||||
|
assert node._params["unix_time"] == 1704067200
|
||||||
|
|
||||||
|
def test_date_time_with_datetime_and_format(self):
|
||||||
|
dt = datetime(2024, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
|
||||||
|
node = DateTime("test", unix_time=dt, date_time_format="yMd")
|
||||||
|
assert node._params["unix_time"] == 1704067200
|
||||||
|
assert node._params["date_time_format"] == "yMd"
|
||||||
|
|
||||||
|
def test_date_time_as_markdown(self):
|
||||||
|
node = DateTime("test", unix_time=42, date_time_format="yMd")
|
||||||
|
assert node.as_markdown() == ""
|
||||||
|
|
||||||
def test_as_line(self):
|
def test_as_line(self):
|
||||||
node = as_line("test", "test", "test")
|
node = as_line("test", "test", "test")
|
||||||
assert isinstance(node, Text)
|
assert isinstance(node, Text)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from aiogram.types import MessageEntity, User
|
from aiogram.types import MessageEntity, User
|
||||||
|
|
@ -146,6 +148,16 @@ class TestTextDecoration:
|
||||||
),
|
),
|
||||||
"",
|
"",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
html_decoration,
|
||||||
|
MessageEntity(type="date_time", offset=0, length=5, unix_time=42),
|
||||||
|
'<tg-time unix="42">test</tg-time>',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
markdown_decoration,
|
||||||
|
MessageEntity(type="date_time", offset=0, length=5, unix_time=42),
|
||||||
|
"",
|
||||||
|
],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_apply_single_entity(
|
def test_apply_single_entity(
|
||||||
|
|
@ -153,6 +165,38 @@ class TestTextDecoration:
|
||||||
):
|
):
|
||||||
assert decorator.apply_entity(entity, "test") == result
|
assert decorator.apply_entity(entity, "test") == result
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"decorator,date_time_format,expected",
|
||||||
|
[
|
||||||
|
(
|
||||||
|
html_decoration,
|
||||||
|
None,
|
||||||
|
'<tg-time unix="1704067200">test</tg-time>',
|
||||||
|
),
|
||||||
|
(
|
||||||
|
html_decoration,
|
||||||
|
"yMd",
|
||||||
|
'<tg-time unix="1704067200" format="yMd">test</tg-time>',
|
||||||
|
),
|
||||||
|
(
|
||||||
|
markdown_decoration,
|
||||||
|
None,
|
||||||
|
"",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
markdown_decoration,
|
||||||
|
"yMd",
|
||||||
|
"",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_date_time_with_datetime_object(
|
||||||
|
self, decorator: TextDecoration, date_time_format: str | None, expected: str
|
||||||
|
):
|
||||||
|
dt = datetime(2024, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
|
||||||
|
result = decorator.date_time("test", unix_time=dt, date_time_format=date_time_format)
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
def test_unknown_apply_entity(self):
|
def test_unknown_apply_entity(self):
|
||||||
assert (
|
assert (
|
||||||
html_decoration.apply_entity(
|
html_decoration.apply_entity(
|
||||||
|
|
@ -318,6 +362,22 @@ class TestTextDecoration:
|
||||||
],
|
],
|
||||||
"<b>test@example.com</b>",
|
"<b>test@example.com</b>",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
html_decoration,
|
||||||
|
"test",
|
||||||
|
[MessageEntity(type="date_time", offset=0, length=4, unix_time=42)],
|
||||||
|
'<tg-time unix="42">test</tg-time>',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
html_decoration,
|
||||||
|
"test",
|
||||||
|
[
|
||||||
|
MessageEntity(
|
||||||
|
type="date_time", offset=0, length=4, unix_time=42, date_time_format="yMd"
|
||||||
|
)
|
||||||
|
],
|
||||||
|
'<tg-time unix="42" format="yMd">test</tg-time>',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_unparse(
|
def test_unparse(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue