From c38b6b3908a8382f229a4ef6183d2a24cb9dab27 Mon Sep 17 00:00:00 2001 From: Groosha Date: Tue, 18 May 2021 23:21:32 +0300 Subject: [PATCH] get_url tests added --- tests/test_api/test_methods/test_get_url.py | 65 +++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 tests/test_api/test_methods/test_get_url.py diff --git a/tests/test_api/test_methods/test_get_url.py b/tests/test_api/test_methods/test_get_url.py new file mode 100644 index 00000000..f9ac8f6f --- /dev/null +++ b/tests/test_api/test_methods/test_get_url.py @@ -0,0 +1,65 @@ +import datetime +from aiogram.types import Chat, Message +from tests.mocked_bot import MockedBot + + +class TestGetMessageUrl: + def test_method(self, bot: MockedBot): + fake_message_id = 10 + + fake_chat_pm = Chat(id=123456, username="username", type="private") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_pm, + ) + + # get_url() in PM must return None + assert fake_message.get_url() is None + + # get_url() in basic group must return None + fake_chat_group = Chat(id=-123456, username="username", type="group") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_group, + ) + assert fake_message.get_url() is None + + # get_url() in supergroup without username must return private link + fake_chat_supergroup_no_username = Chat(id=-1001234567890, type="supergroup") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_supergroup_no_username, + ) + assert fake_message.chat.shifted_id == 1234567890 + assert fake_message.get_url() == f"https://t.me/c/1234567890/{fake_message_id}" + + # get_url() in supergroup with username must return link with username or private link + # if force_private set to True + fake_chat_supergroup_username = Chat(id=-1001234567890, username="username", type="supergroup") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_supergroup_username, + ) + assert fake_message.chat.shifted_id == 1234567890 + assert fake_message.get_url() == f"https://t.me/username/{fake_message_id}" + assert fake_message.get_url(force_private=True) == f"https://t.me/c/1234567890/{fake_message_id}" + + # get_url() in channel without username must return private link + fake_chat_channel_no_username = Chat(id=-1001234567890, type="channel") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_channel_no_username, + ) + assert fake_message.chat.shifted_id == 1234567890 + assert fake_message.get_url() == f"https://t.me/c/1234567890/{fake_message_id}" + + # get_url() in channel with username must return link with username or private link + # if force_private set to True + fake_chat_channel_username = Chat(id=-1001234567890, username="username", type="channel") + fake_message = Message( + message_id=fake_message_id, date=datetime.datetime.now(), + text="test", chat=fake_chat_channel_username, + ) + assert fake_message.chat.shifted_id == 1234567890 + assert fake_message.get_url() == f"https://t.me/username/{fake_message_id}" + assert fake_message.get_url(force_private=True) == f"https://t.me/c/1234567890/{fake_message_id}"