mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 18:01:04 +00:00
52 lines
2 KiB
Python
52 lines
2 KiB
Python
|
|
import datetime
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
import pytest
|
||
|
|
from aiogram.types import Chat, Message
|
||
|
|
|
||
|
|
from tests.mocked_bot import MockedBot
|
||
|
|
|
||
|
|
|
||
|
|
class TestGetMessageUrl:
|
||
|
|
@pytest.mark.parametrize(
|
||
|
|
"chat_type,chat_id,chat_username,force_private,expected_result",
|
||
|
|
[
|
||
|
|
["private", 123456, "username", False, None],
|
||
|
|
["group", -123456, "username", False, None],
|
||
|
|
["supergroup", -1001234567890, None, False, "https://t.me/c/1234567890/10"],
|
||
|
|
["supergroup", -1001234567890, None, True, "https://t.me/c/1234567890/10"],
|
||
|
|
["supergroup", -1001234567890, "username", False, "https://t.me/username/10"],
|
||
|
|
["supergroup", -1001234567890, "username", True, "https://t.me/c/1234567890/10"],
|
||
|
|
["channel", -1001234567890, None, False, "https://t.me/c/1234567890/10"],
|
||
|
|
["channel", -1001234567890, None, True, "https://t.me/c/1234567890/10"],
|
||
|
|
["channel", -1001234567890, "username", False, "https://t.me/username/10"],
|
||
|
|
["channel", -1001234567890, "username", True, "https://t.me/c/1234567890/10"],
|
||
|
|
# 2 extra cases: 9-digit ID and 11-digit ID (without "-100")
|
||
|
|
["supergroup", -100123456789, None, True, "https://t.me/c/123456789/10"],
|
||
|
|
["supergroup", -10012345678901, None, True, "https://t.me/c/12345678901/10"],
|
||
|
|
],
|
||
|
|
)
|
||
|
|
def test_method(
|
||
|
|
self,
|
||
|
|
bot: MockedBot,
|
||
|
|
chat_type: str,
|
||
|
|
chat_id: int,
|
||
|
|
chat_username: Optional[str],
|
||
|
|
force_private: bool,
|
||
|
|
expected_result: Optional[str],
|
||
|
|
):
|
||
|
|
|
||
|
|
fake_chat = Chat(id=chat_id, username=chat_username, type=chat_type)
|
||
|
|
fake_message_id = 10
|
||
|
|
fake_message = Message(
|
||
|
|
message_id=fake_message_id,
|
||
|
|
date=datetime.datetime.now(),
|
||
|
|
text="test",
|
||
|
|
chat=fake_chat,
|
||
|
|
)
|
||
|
|
|
||
|
|
if expected_result is None:
|
||
|
|
assert fake_message.get_url(force_private=force_private) is None
|
||
|
|
else:
|
||
|
|
assert fake_message.get_url(force_private=force_private) == expected_result
|