diff --git a/tests/test_api/test_methods/test_close_forum_topic.py b/tests/test_api/test_methods/test_close_forum_topic.py new file mode 100644 index 00000000..a9fa87b3 --- /dev/null +++ b/tests/test_api/test_methods/test_close_forum_topic.py @@ -0,0 +1,32 @@ +import pytest + +from aiogram.methods import CloseForumTopic, Request +from tests.mocked_bot import MockedBot + + +class TestCloseForumTopic: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(CloseForumTopic, ok=True, result=True) + + response: bool = await CloseForumTopic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "closeForumTopic" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(CloseForumTopic, ok=True, result=True) + + response: bool = await bot.close_forum_topic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "closeForumTopic" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_create_forum_topic.py b/tests/test_api/test_methods/test_create_forum_topic.py new file mode 100644 index 00000000..69f5ff3d --- /dev/null +++ b/tests/test_api/test_methods/test_create_forum_topic.py @@ -0,0 +1,41 @@ +import pytest + +from aiogram.methods import CreateForumTopic, Request +from aiogram.types import ForumTopic +from tests.mocked_bot import MockedBot + + +class TestCreateForumTopic: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for( + CreateForumTopic, + ok=True, + result=ForumTopic(message_thread_id=42, name="test", icon_color=0xFFD67E), + ) + + response: ForumTopic = await CreateForumTopic( + chat_id=42, + name="test", + ) + request: Request = bot.get_request() + assert request.method == "createForumTopic" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for( + CreateForumTopic, + ok=True, + result=ForumTopic(message_thread_id=42, name="test", icon_color=0xFFD67E), + ) + + response: ForumTopic = await bot.create_forum_topic( + chat_id=42, + name="test", + ) + request: Request = bot.get_request() + assert request.method == "createForumTopic" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_delete_forum_topic.py b/tests/test_api/test_methods/test_delete_forum_topic.py new file mode 100644 index 00000000..773627fe --- /dev/null +++ b/tests/test_api/test_methods/test_delete_forum_topic.py @@ -0,0 +1,32 @@ +import pytest + +from aiogram.methods import DeleteForumTopic, Request +from tests.mocked_bot import MockedBot + + +class TestDeleteForumTopic: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(DeleteForumTopic, ok=True, result=True) + + response: bool = await DeleteForumTopic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "deleteForumTopic" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(DeleteForumTopic, ok=True, result=True) + + response: bool = await bot.delete_forum_topic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "deleteForumTopic" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_edit_forum_topic.py b/tests/test_api/test_methods/test_edit_forum_topic.py new file mode 100644 index 00000000..5441bd9b --- /dev/null +++ b/tests/test_api/test_methods/test_edit_forum_topic.py @@ -0,0 +1,37 @@ +import pytest + +from aiogram.methods import EditForumTopic, Request +from tests.mocked_bot import MockedBot + + +class TestEditForumTopic: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(EditForumTopic, ok=True, result=True) + + response: bool = await EditForumTopic( + chat_id=42, + message_thread_id=42, + name="test", + icon_color=0xFFD67E, + icon_custom_emoji_id="0", + ) + request: Request = bot.get_request() + assert request.method == "editForumTopic" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(EditForumTopic, ok=True, result=True) + + response: bool = await bot.edit_forum_topic( + chat_id=42, + message_thread_id=42, + name="test", + icon_custom_emoji_id="0", + ) + request: Request = bot.get_request() + assert request.method == "editForumTopic" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_get_forum_topic_icon_stickers.py b/tests/test_api/test_methods/test_get_forum_topic_icon_stickers.py new file mode 100644 index 00000000..d8233eea --- /dev/null +++ b/tests/test_api/test_methods/test_get_forum_topic_icon_stickers.py @@ -0,0 +1,29 @@ +from typing import List + +import pytest + +from aiogram.methods import GetForumTopicIconStickers, Request +from aiogram.types import Sticker +from tests.mocked_bot import MockedBot + + +class TestGetForumTopicIconStickers: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(GetForumTopicIconStickers, ok=True, result=[]) + + response: List[Sticker] = await GetForumTopicIconStickers() + request: Request = bot.get_request() + assert request.method == "getForumTopicIconStickers" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(GetForumTopicIconStickers, ok=True, result=[]) + + response: List[Sticker] = await bot.get_forum_topic_icon_stickers() + request: Request = bot.get_request() + assert request.method == "getForumTopicIconStickers" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_reopen_forum_topic.py b/tests/test_api/test_methods/test_reopen_forum_topic.py new file mode 100644 index 00000000..9fe47eac --- /dev/null +++ b/tests/test_api/test_methods/test_reopen_forum_topic.py @@ -0,0 +1,32 @@ +import pytest + +from aiogram.methods import ReopenForumTopic, Request +from tests.mocked_bot import MockedBot + + +class TestReopenForumTopic: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(ReopenForumTopic, ok=True, result=None) + + response: bool = await ReopenForumTopic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "reopenForumTopic" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(ReopenForumTopic, ok=True, result=None) + + response: bool = await bot.reopen_forum_topic( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "reopenForumTopic" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_unpin_all_forum_topic_messages.py b/tests/test_api/test_methods/test_unpin_all_forum_topic_messages.py new file mode 100644 index 00000000..eaf64b69 --- /dev/null +++ b/tests/test_api/test_methods/test_unpin_all_forum_topic_messages.py @@ -0,0 +1,32 @@ +import pytest + +from aiogram.methods import Request, UnpinAllForumTopicMessages +from tests.mocked_bot import MockedBot + + +class TestUnpinAllForumTopicMessages: + @pytest.mark.asyncio + async def test_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(UnpinAllForumTopicMessages, ok=True, result=True) + + response: bool = await UnpinAllForumTopicMessages( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "unpinAllForumTopicMessages" + # assert request.data == {} + assert response == prepare_result.result + + @pytest.mark.asyncio + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for(UnpinAllForumTopicMessages, ok=True, result=True) + + response: bool = await bot.unpin_all_forum_topic_messages( + chat_id=42, + message_thread_id=42, + ) + request: Request = bot.get_request() + assert request.method == "unpinAllForumTopicMessages" + # assert request.data == {} + assert response == prepare_result.result diff --git a/tests/test_filters/test_chat_member_updated.py b/tests/test_filters/test_chat_member_updated.py index a4c5502d..42386a55 100644 --- a/tests/test_filters/test_chat_member_updated.py +++ b/tests/test_filters/test_chat_member_updated.py @@ -333,6 +333,7 @@ class TestChatMemberUpdatedStatusFilter: "can_send_polls": True, "can_send_other_messages": True, "can_add_web_page_previews": True, + "can_manage_topics": True, } event = ChatMemberUpdated( chat=Chat(id=42, type="test"),