From 0e005f661ce8224c4dd23c3af7ca0daf76b98901 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 3 Jul 2020 17:08:37 +0500 Subject: [PATCH] refator: use MessageFactory instead of Message, just a part --- tests/factories/message.py | 2 +- .../test_methods/test_edit_message_caption.py | 11 +++----- .../test_methods/test_forward_message.py | 7 +++--- .../test_methods/test_send_animation.py | 11 +++----- .../test_api/test_methods/test_send_audio.py | 11 +++----- .../test_methods/test_send_contact.py | 13 +++------- .../test_methods/test_send_document.py | 11 +++----- tests/test_api/test_methods/test_send_game.py | 11 +++----- .../test_methods/test_send_invoice.py | 13 +++------- .../test_methods/test_send_location.py | 11 +++----- .../test_methods/test_send_media_group.py | 21 ++++------------ .../test_methods/test_send_message.py | 13 +++------- .../test_api/test_methods/test_send_photo.py | 15 +++-------- tests/test_api/test_methods/test_send_poll.py | 22 ++++++++-------- .../test_handler/test_message.py | 25 +++---------------- 15 files changed, 54 insertions(+), 143 deletions(-) diff --git a/tests/factories/message.py b/tests/factories/message.py index 1b8dc399..c4eec6f4 100644 --- a/tests/factories/message.py +++ b/tests/factories/message.py @@ -17,7 +17,7 @@ class MessageFactory(factory.Factory): chat = factory.SubFactory(ChatFactory) text = factory.Sequence(lambda n: f"Message text #{n}") - date = factory.LazyFunction(lambda _: datetime.now().toordinal()) + date = factory.LazyFunction(lambda: datetime.now().toordinal()) def __new__(cls, *args, **kwargs) -> "MessageFactory.Meta.model": """ diff --git a/tests/test_api/test_methods/test_edit_message_caption.py b/tests/test_api/test_methods/test_edit_message_caption.py index 695e2287..19fb9626 100644 --- a/tests/test_api/test_methods/test_edit_message_caption.py +++ b/tests/test_api/test_methods/test_edit_message_caption.py @@ -1,11 +1,10 @@ -import datetime from typing import Union import pytest from aiogram.api.methods import EditMessageCaption, Request from aiogram.api.types import Message -from tests.factories.chat import ChatFactory +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -15,9 +14,7 @@ class TestEditMessageCaption: prepare_result = bot.add_result_for( EditMessageCaption, ok=True, - result=Message( - message_id=42, date=datetime.datetime.now(), text="text", chat=ChatFactory(), - ), + result=MessageFactory(), ) response: Union[Message, bool] = await EditMessageCaption() @@ -30,9 +27,7 @@ class TestEditMessageCaption: prepare_result = bot.add_result_for( EditMessageCaption, ok=True, - result=Message( - message_id=42, date=datetime.datetime.now(), text="text", chat=ChatFactory(), - ), + result=MessageFactory(), ) response: Union[Message, bool] = await bot.edit_message_caption() diff --git a/tests/test_api/test_methods/test_forward_message.py b/tests/test_api/test_methods/test_forward_message.py index c52561e0..b7a0b13f 100644 --- a/tests/test_api/test_methods/test_forward_message.py +++ b/tests/test_api/test_methods/test_forward_message.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import ForwardMessage, Request from aiogram.api.types import Chat, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,8 +14,7 @@ class TestForwardMessage: prepare_result = bot.add_result_for( ForwardMessage, ok=True, - result=Message( - message_id=42, date=datetime.datetime.now(), chat=private_chat, text="text", + result=MessageFactory( ), ) @@ -31,8 +31,7 @@ class TestForwardMessage: prepare_result = bot.add_result_for( ForwardMessage, ok=True, - result=Message( - message_id=42, date=datetime.datetime.now(), chat=private_chat, text="text", + result=MessageFactory( ), ) diff --git a/tests/test_api/test_methods/test_send_animation.py b/tests/test_api/test_methods/test_send_animation.py index 918959dc..85bb4380 100644 --- a/tests/test_api/test_methods/test_send_animation.py +++ b/tests/test_api/test_methods/test_send_animation.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendAnimation from aiogram.api.types import Animation, Chat, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,13 +14,10 @@ class TestSendAnimation: prepare_result = bot.add_result_for( SendAnimation, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( animation=Animation( file_id="file id", width=42, height=42, duration=0, file_unique_id="file id" ), - chat=private_chat, ), ) @@ -33,13 +31,10 @@ class TestSendAnimation: prepare_result = bot.add_result_for( SendAnimation, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( animation=Animation( file_id="file id", width=42, height=42, duration=0, file_unique_id="file id" ), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_audio.py b/tests/test_api/test_methods/test_send_audio.py index 27752ede..a29fa896 100644 --- a/tests/test_api/test_methods/test_send_audio.py +++ b/tests/test_api/test_methods/test_send_audio.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendAudio from aiogram.api.types import Audio, Chat, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,11 +14,8 @@ class TestSendAudio: prepare_result = bot.add_result_for( SendAudio, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( audio=Audio(file_id="file id", duration=42, file_unique_id="file id"), - chat=private_chat, ), ) @@ -31,11 +29,8 @@ class TestSendAudio: prepare_result = bot.add_result_for( SendAudio, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( audio=Audio(file_id="file id", duration=42, file_unique_id="file id"), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_contact.py b/tests/test_api/test_methods/test_send_contact.py index 147a70d7..b42c36c4 100644 --- a/tests/test_api/test_methods/test_send_contact.py +++ b/tests/test_api/test_methods/test_send_contact.py @@ -1,9 +1,8 @@ -import datetime - import pytest from aiogram.api.methods import Request, SendContact from aiogram.api.types import Chat, Contact, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,11 +12,8 @@ class TestSendContact: prepare_result = bot.add_result_for( SendContact, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( contact=Contact(phone_number="911", first_name="911"), - chat=private_chat, ), ) @@ -33,11 +29,8 @@ class TestSendContact: prepare_result = bot.add_result_for( SendContact, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( contact=Contact(phone_number="911", first_name="911"), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_document.py b/tests/test_api/test_methods/test_send_document.py index b2daaba1..50ecaf5f 100644 --- a/tests/test_api/test_methods/test_send_document.py +++ b/tests/test_api/test_methods/test_send_document.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendDocument from aiogram.api.types import Chat, Document, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,11 +14,8 @@ class TestSendDocument: prepare_result = bot.add_result_for( SendDocument, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( document=Document(file_id="file id", file_unique_id="file id"), - chat=private_chat, ), ) @@ -31,11 +29,8 @@ class TestSendDocument: prepare_result = bot.add_result_for( SendDocument, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( document=Document(file_id="file id", file_unique_id="file id"), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_game.py b/tests/test_api/test_methods/test_send_game.py index 05194990..55e8460d 100644 --- a/tests/test_api/test_methods/test_send_game.py +++ b/tests/test_api/test_methods/test_send_game.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendGame from aiogram.api.types import Chat, Game, Message, PhotoSize +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,9 +14,7 @@ class TestSendGame: prepare_result = bot.add_result_for( SendGame, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( game=Game( title="title", description="description", @@ -23,7 +22,6 @@ class TestSendGame: PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], ), - chat=private_chat, ), ) @@ -37,9 +35,7 @@ class TestSendGame: prepare_result = bot.add_result_for( SendGame, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( game=Game( title="title", description="description", @@ -47,7 +43,6 @@ class TestSendGame: PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], ), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_invoice.py b/tests/test_api/test_methods/test_send_invoice.py index 2d0d4118..c0e12dcd 100644 --- a/tests/test_api/test_methods/test_send_invoice.py +++ b/tests/test_api/test_methods/test_send_invoice.py @@ -1,9 +1,8 @@ -import datetime - import pytest from aiogram.api.methods import Request, SendInvoice from aiogram.api.types import Chat, Invoice, LabeledPrice, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,9 +12,7 @@ class TestSendInvoice: prepare_result = bot.add_result_for( SendInvoice, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( invoice=Invoice( title="test", description="test", @@ -23,7 +20,6 @@ class TestSendInvoice: currency="BTC", total_amount=1, ), - chat=private_chat, ), ) @@ -46,9 +42,7 @@ class TestSendInvoice: prepare_result = bot.add_result_for( SendInvoice, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( invoice=Invoice( title="test", description="test", @@ -56,7 +50,6 @@ class TestSendInvoice: currency="BTC", total_amount=1, ), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_location.py b/tests/test_api/test_methods/test_send_location.py index 7d0cc9cb..7114afd6 100644 --- a/tests/test_api/test_methods/test_send_location.py +++ b/tests/test_api/test_methods/test_send_location.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendLocation from aiogram.api.types import Chat, Location, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,11 +14,8 @@ class TestSendLocation: prepare_result = bot.add_result_for( SendLocation, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( location=Location(longitude=3.14, latitude=3.14), - chat=private_chat, ), ) @@ -33,11 +31,8 @@ class TestSendLocation: prepare_result = bot.add_result_for( SendLocation, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( location=Location(longitude=3.14, latitude=3.14), - chat=private_chat, ), ) diff --git a/tests/test_api/test_methods/test_send_media_group.py b/tests/test_api/test_methods/test_send_media_group.py index ba90e87a..00a666e3 100644 --- a/tests/test_api/test_methods/test_send_media_group.py +++ b/tests/test_api/test_methods/test_send_media_group.py @@ -13,6 +13,7 @@ from aiogram.api.types import ( PhotoSize, Video, ) +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -23,18 +24,13 @@ class TestSendMediaGroup: SendMediaGroup, ok=True, result=[ - Message( - message_id=42, - date=datetime.datetime.now(), + MessageFactory( photo=[ PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], media_group_id="media group", - chat=private_chat, ), - Message( - message_id=43, - date=datetime.datetime.now(), + MessageFactory( video=Video( file_id="file id", width=42, @@ -43,7 +39,6 @@ class TestSendMediaGroup: file_unique_id="file id", ), media_group_id="media group", - chat=private_chat, ), ], ) @@ -65,18 +60,13 @@ class TestSendMediaGroup: SendMediaGroup, ok=True, result=[ - Message( - message_id=42, - date=datetime.datetime.now(), + MessageFactory( photo=[ PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], media_group_id="media group", - chat=private_chat, ), - Message( - message_id=43, - date=datetime.datetime.now(), + MessageFactory( video=Video( file_id="file id", width=42, @@ -85,7 +75,6 @@ class TestSendMediaGroup: file_unique_id="file id", ), media_group_id="media group", - chat=private_chat, ), ], ) diff --git a/tests/test_api/test_methods/test_send_message.py b/tests/test_api/test_methods/test_send_message.py index 9c09284e..02989c9c 100644 --- a/tests/test_api/test_methods/test_send_message.py +++ b/tests/test_api/test_methods/test_send_message.py @@ -4,6 +4,7 @@ import pytest from aiogram.api.methods import Request, SendMessage from aiogram.api.types import Chat, Message +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,11 +14,7 @@ class TestSendMessage: prepare_result = bot.add_result_for( SendMessage, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), - text="test", - chat=Chat(id=42, type="private"), + result=MessageFactory( ), ) @@ -31,11 +28,7 @@ class TestSendMessage: prepare_result = bot.add_result_for( SendMessage, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), - text="test", - chat=Chat(id=42, type="private"), + result=MessageFactory( ), ) diff --git a/tests/test_api/test_methods/test_send_photo.py b/tests/test_api/test_methods/test_send_photo.py index 2ff2b7c6..e737924a 100644 --- a/tests/test_api/test_methods/test_send_photo.py +++ b/tests/test_api/test_methods/test_send_photo.py @@ -1,9 +1,8 @@ -import datetime - import pytest from aiogram.api.methods import Request, SendPhoto -from aiogram.api.types import Chat, Message, PhotoSize +from aiogram.api.types import Message, PhotoSize +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot @@ -13,13 +12,10 @@ class TestSendPhoto: prepare_result = bot.add_result_for( SendPhoto, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( photo=[ PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], - chat=Chat(id=42, type="private"), ), ) @@ -33,13 +29,10 @@ class TestSendPhoto: prepare_result = bot.add_result_for( SendPhoto, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( photo=[ PhotoSize(file_id="file id", width=42, height=42, file_unique_id="file id") ], - chat=Chat(id=42, type="private"), ), ) diff --git a/tests/test_api/test_methods/test_send_poll.py b/tests/test_api/test_methods/test_send_poll.py index 5e2b6c28..fdfc8e3d 100644 --- a/tests/test_api/test_methods/test_send_poll.py +++ b/tests/test_api/test_methods/test_send_poll.py @@ -4,18 +4,18 @@ import pytest from aiogram.api.methods import Request, SendPoll from aiogram.api.types import Chat, Message, Poll, PollOption +from tests.conftest import private_chat +from tests.factories.message import MessageFactory from tests.mocked_bot import MockedBot class TestSendPoll: @pytest.mark.asyncio - async def test_method(self, bot: MockedBot): + async def test_method(self, bot: MockedBot, private_chat: Chat): prepare_result = bot.add_result_for( SendPoll, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( poll=Poll( id="QA", question="Q", @@ -30,25 +30,23 @@ class TestSendPoll: total_voter_count=0, correct_option_id=0, ), - chat=Chat(id=42, type="private"), + chat=private_chat ), ) response: Message = await SendPoll( - chat_id=42, question="Q?", options=["A", "B"], correct_option_id=0, type="quiz" + chat_id=private_chat.id, question="Q?", options=["A", "B"], correct_option_id=0, type="quiz" ) request: Request = bot.get_request() assert request.method == "sendPoll" assert response == prepare_result.result @pytest.mark.asyncio - async def test_bot_method(self, bot: MockedBot): + async def test_bot_method(self, bot: MockedBot, private_chat: Chat): prepare_result = bot.add_result_for( SendPoll, ok=True, - result=Message( - message_id=42, - date=datetime.datetime.now(), + result=MessageFactory( poll=Poll( id="QA", question="Q", @@ -63,12 +61,12 @@ class TestSendPoll: total_voter_count=0, correct_option_id=0, ), - chat=Chat(id=42, type="private"), + chat=private_chat ), ) response: Message = await bot.send_poll( - chat_id=42, question="Q?", options=["A", "B"], correct_option_id=0, type="quiz" + chat_id=private_chat.id, question="Q?", options=["A", "B"], correct_option_id=0, type="quiz" ) request: Request = bot.get_request() assert request.method == "sendPoll" diff --git a/tests/test_dispatcher/test_handler/test_message.py b/tests/test_dispatcher/test_handler/test_message.py index 90882738..bf352b7d 100644 --- a/tests/test_dispatcher/test_handler/test_message.py +++ b/tests/test_dispatcher/test_handler/test_message.py @@ -1,12 +1,10 @@ -import datetime from typing import Any import pytest -from aiogram.api.types import Message, User from aiogram.dispatcher.filters import CommandObject from aiogram.dispatcher.handler.message import MessageHandler, MessageHandlerCommandMixin -from tests.factories.chat import ChatFactory +from tests.factories.message import MessageFactory class MyHandler(MessageHandler): @@ -17,12 +15,7 @@ class MyHandler(MessageHandler): class TestClassBasedMessageHandler: @pytest.mark.asyncio async def test_message_handler(self): - event = Message( - message_id=42, - date=datetime.datetime.now(), - text="test", - chat=ChatFactory(), - from_user=User(id=42, is_bot=False, first_name="Test"), + event = MessageFactory( ) handler = MyHandler(event=event) @@ -38,12 +31,8 @@ class HandlerWithCommand(MessageHandlerCommandMixin, MessageHandler): class TestBaseMessageHandlerCommandMixin: def test_command_accessible(self): handler = HandlerWithCommand( - Message( - message_id=42, - date=datetime.datetime.now(), + MessageFactory( text="/test args", - chat=ChatFactory(), - from_user=User(id=42, is_bot=False, first_name="Test"), ), command=CommandObject(prefix="/", command="command", args="args"), ) @@ -53,13 +42,7 @@ class TestBaseMessageHandlerCommandMixin: def test_command_not_presented(self): handler = HandlerWithCommand( - Message( - message_id=42, - date=datetime.datetime.now(), - text="test", - chat=ChatFactory(), - from_user=User(id=42, is_bot=False, first_name="Test"), - ) + MessageFactory() ) assert handler.command is None