mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
AIOG-T-48. User method get_mention() added
* method added * unit tests added * markdown utils typing fixed * ParseMode types class added fixup! AIOG-T-48. User method get_mention() added
This commit is contained in:
parent
05d69c48e9
commit
7cec70f94f
4 changed files with 80 additions and 14 deletions
|
|
@ -1,5 +1,9 @@
|
|||
from unittest import mock
|
||||
from unittest.mock import PropertyMock, _patch
|
||||
|
||||
import pytest
|
||||
|
||||
from aiogram import Bot
|
||||
from aiogram.api.types import User
|
||||
|
||||
|
||||
|
|
@ -36,3 +40,28 @@ class TestUser:
|
|||
def test_url(self, user_id: int, expected_url: str):
|
||||
user = User(id=user_id, is_bot=False, first_name="User", last_name="Name")
|
||||
assert user.url == expected_url
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"name, as_html, bot_parse_mode, expected_mention",
|
||||
[
|
||||
["Markdown User", False, None, "[Markdown User](tg://user?id=42)"],
|
||||
["HTML User", True, None, '<a href="tg://user?id=42">HTML User</a>'],
|
||||
["HTML Bot", None, "HTML", '<a href="tg://user?id=42">HTML Bot</a>'],
|
||||
["Lowercase html", None, "html", '<a href="tg://user?id=42">Lowercase html</a>'],
|
||||
["MarkdownV2 Bot", None, "MarkdownV2", "[MarkdownV2 Bot](tg://user?id=42)"],
|
||||
[None, True, "Markdown", '<a href="tg://user?id=42">User Name</a>'],
|
||||
[None, False, "Markdown", "[User Name](tg://user?id=42)"],
|
||||
],
|
||||
)
|
||||
@mock.patch("aiogram.api.types.User.bot", new_callable=PropertyMock)
|
||||
def test_get_mention(
|
||||
self,
|
||||
mock_bot_property: _patch,
|
||||
name: str,
|
||||
as_html: bool,
|
||||
bot_parse_mode: str,
|
||||
expected_mention: str,
|
||||
):
|
||||
user = User(id=42, is_bot=False, first_name="User", last_name="Name")
|
||||
mock_bot_property.return_value = Bot(token="42:TEST", parse_mode=bot_parse_mode)
|
||||
assert user.get_mention(name, as_html) == expected_mention
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue