Refactor dispatcher. Update docs. Fix tests.

This commit is contained in:
Alex Root Junior 2020-11-18 02:05:52 +02:00
parent 9539c4e2fd
commit d3b488e16d
290 changed files with 2153 additions and 1780 deletions

View file

@ -1,4 +1,4 @@
from aiogram.api.client.telegram import PRODUCTION
from aiogram.client.telegram import PRODUCTION
class TestAPIServer:

View file

@ -6,8 +6,8 @@ from aresponses import ResponsesMockServer
from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.api.methods import GetFile, GetMe
from aiogram.api.types import File, PhotoSize
from aiogram.methods import GetFile, GetMe
from aiogram.types import File, PhotoSize
from tests.mocked_bot import MockedBot
try:
@ -38,7 +38,7 @@ class TestBot:
method = GetMe()
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.make_request",
"aiogram.client.session.aiohttp.AiohttpSession.make_request",
new_callable=CoroutineMock,
) as mocked_make_request:
await bot(method)
@ -51,16 +51,16 @@ class TestBot:
await session.create_session()
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
"aiogram.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
) as mocked_close:
await bot.close()
await bot.session.close()
mocked_close.assert_awaited()
@pytest.mark.asyncio
@pytest.mark.parametrize("close", [True, False])
async def test_context_manager(self, close: bool):
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
"aiogram.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
) as mocked_close:
async with Bot("42:TEST", session=AiohttpSession()).context(auto_close=close) as bot:
assert isinstance(bot, Bot)

View file

@ -7,8 +7,8 @@ from aresponses import ResponsesMockServer
from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.api.methods import Request, TelegramMethod
from aiogram.api.types import InputFile
from aiogram.methods import Request, TelegramMethod
from aiogram.types import InputFile
from tests.mocked_bot import MockedBot
try:
@ -171,7 +171,7 @@ class TestAiohttpSession:
call = TestMethod()
with patch(
"aiogram.api.client.session.base.BaseSession.raise_for_status"
"aiogram.client.session.base.BaseSession.raise_for_status"
) as patched_raise_for_status:
result = await session.make_request(bot, call)
assert isinstance(result, int)
@ -205,10 +205,10 @@ class TestAiohttpSession:
assert isinstance(session, AsyncContextManager)
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.create_session",
"aiogram.client.session.aiohttp.AiohttpSession.create_session",
new_callable=CoroutineMock,
) as mocked_create_session, patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
"aiogram.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
) as mocked_close:
async with session as ctx:
assert session == ctx

View file

@ -5,9 +5,9 @@ from typing import AsyncContextManager, AsyncGenerator, Optional
import pytest
from aiogram.client.session.base import BaseSession, T
from aiogram.api.client.telegram import PRODUCTION, TelegramAPIServer
from aiogram.api.methods import GetMe, Response, TelegramMethod
from aiogram.api.types import UNSET
from aiogram.client.telegram import PRODUCTION, TelegramAPIServer
from aiogram.methods import GetMe, Response, TelegramMethod
from aiogram.types import UNSET
try:
from asynctest import CoroutineMock, patch

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import AddStickerToSet, Request
from aiogram.methods import AddStickerToSet, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import AnswerCallbackQuery, Request
from aiogram.methods import AnswerCallbackQuery, Request
from tests.mocked_bot import MockedBot

View file

@ -1,8 +1,8 @@
import pytest
from aiogram import Bot
from aiogram.api.methods import AnswerInlineQuery, Request
from aiogram.api.types import InlineQueryResult, InlineQueryResultPhoto
from aiogram.methods import AnswerInlineQuery, Request
from aiogram.types import InlineQueryResult, InlineQueryResultPhoto
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import AnswerPreCheckoutQuery, Request
from aiogram.methods import AnswerPreCheckoutQuery, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import AnswerShippingQuery, Request
from aiogram.methods import AnswerShippingQuery, Request
from tests.mocked_bot import MockedBot

View file

@ -3,7 +3,7 @@ from typing import Dict, Optional
import pytest
from aiogram import Bot
from aiogram.api.methods.base import prepare_parse_mode
from aiogram.methods.base import prepare_parse_mode
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import CreateNewStickerSet, Request
from aiogram.methods import CreateNewStickerSet, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import DeleteChatPhoto, Request
from aiogram.methods import DeleteChatPhoto, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import DeleteChatStickerSet, Request
from aiogram.methods import DeleteChatStickerSet, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import DeleteMessage, Request
from aiogram.methods import DeleteMessage, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import DeleteStickerFromSet, Request
from aiogram.methods import DeleteStickerFromSet, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import DeleteWebhook, Request
from aiogram.methods import DeleteWebhook, Request
from tests.mocked_bot import MockedBot

View file

@ -3,8 +3,8 @@ from typing import Union
import pytest
from aiogram.api.methods import EditMessageCaption, Request
from aiogram.api.types import Chat, Message
from aiogram.methods import EditMessageCaption, Request
from aiogram.types import Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import EditMessageLiveLocation, Request
from aiogram.api.types import Message
from aiogram.methods import EditMessageLiveLocation, Request
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import EditMessageMedia, Request
from aiogram.api.types import BufferedInputFile, InputMedia, InputMediaPhoto, Message
from aiogram.methods import EditMessageMedia, Request
from aiogram.types import BufferedInputFile, InputMedia, InputMediaPhoto, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import EditMessageReplyMarkup, Request
from aiogram.api.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
from aiogram.methods import EditMessageReplyMarkup, Request
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import EditMessageText, Request
from aiogram.api.types import Message
from aiogram.methods import EditMessageText, Request
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import ExportChatInviteLink, Request
from aiogram.methods import ExportChatInviteLink, Request
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import ForwardMessage, Request
from aiogram.api.types import Chat, Message
from aiogram.methods import ForwardMessage, Request
from aiogram.types import Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetChat, Request
from aiogram.api.types import Chat
from aiogram.methods import GetChat, Request
from aiogram.types import Chat
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import List
import pytest
from aiogram.api.methods import GetChatAdministrators, Request
from aiogram.api.types import ChatMember, User
from aiogram.methods import GetChatAdministrators, Request
from aiogram.types import ChatMember, User
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetChatMember, Request
from aiogram.api.types import ChatMember, User
from aiogram.methods import GetChatMember, Request
from aiogram.types import ChatMember, User
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import GetChatMembersCount, Request
from aiogram.methods import GetChatMembersCount, Request
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetFile, Request
from aiogram.api.types import File
from aiogram.methods import GetFile, Request
from aiogram.types import File
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import List
import pytest
from aiogram.api.methods import GetGameHighScores, Request
from aiogram.api.types import GameHighScore, User
from aiogram.methods import GetGameHighScores, Request
from aiogram.types import GameHighScore, User
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetMe, Request
from aiogram.api.types import User
from aiogram.methods import GetMe, Request
from aiogram.types import User
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import List
import pytest
from aiogram.api.methods import GetMyCommands, Request
from aiogram.api.types import BotCommand
from aiogram.methods import GetMyCommands, Request
from aiogram.types import BotCommand
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetStickerSet, Request
from aiogram.api.types import Sticker, StickerSet
from aiogram.methods import GetStickerSet, Request
from aiogram.types import Sticker, StickerSet
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import List
import pytest
from aiogram.api.methods import GetUpdates, Request
from aiogram.api.types import Update
from aiogram.methods import GetUpdates, Request
from aiogram.types import Update
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetUserProfilePhotos, Request
from aiogram.api.types import PhotoSize, UserProfilePhotos
from aiogram.methods import GetUserProfilePhotos, Request
from aiogram.types import PhotoSize, UserProfilePhotos
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import GetWebhookInfo, Request
from aiogram.api.types import WebhookInfo
from aiogram.methods import GetWebhookInfo, Request
from aiogram.types import WebhookInfo
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import KickChatMember, Request
from aiogram.methods import KickChatMember, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import LeaveChat, Request
from aiogram.methods import LeaveChat, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import PinChatMessage, Request
from aiogram.methods import PinChatMessage, Request
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import PromoteChatMember, Request
from aiogram.methods import PromoteChatMember, Request
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, RestrictChatMember
from aiogram.api.types import ChatPermissions
from aiogram.methods import Request, RestrictChatMember
from aiogram.types import ChatPermissions
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendAnimation
from aiogram.api.types import Animation, Chat, Message
from aiogram.methods import Request, SendAnimation
from aiogram.types import Animation, Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendAudio
from aiogram.api.types import Audio, Chat, File, Message
from aiogram.methods import Request, SendAudio
from aiogram.types import Audio, Chat, File, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SendChatAction
from aiogram.methods import Request, SendChatAction
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendContact
from aiogram.api.types import Chat, Contact, Message
from aiogram.methods import Request, SendContact
from aiogram.types import Chat, Contact, Message
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, SendDice
from aiogram.api.types import Message
from aiogram.methods import Request, SendDice
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendDocument
from aiogram.api.types import Chat, Document, Message
from aiogram.methods import Request, SendDocument
from aiogram.types import Chat, Document, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendGame
from aiogram.api.types import Chat, Game, Message, PhotoSize
from aiogram.methods import Request, SendGame
from aiogram.types import Chat, Game, Message, PhotoSize
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendInvoice
from aiogram.api.types import Chat, Invoice, LabeledPrice, Message
from aiogram.methods import Request, SendInvoice
from aiogram.types import Chat, Invoice, LabeledPrice, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendLocation
from aiogram.api.types import Chat, Location, Message
from aiogram.methods import Request, SendLocation
from aiogram.types import Chat, Location, Message
from tests.mocked_bot import MockedBot

View file

@ -3,8 +3,8 @@ from typing import List
import pytest
from aiogram.api.methods import Request, SendMediaGroup
from aiogram.api.types import (
from aiogram.methods import Request, SendMediaGroup
from aiogram.types import (
BufferedInputFile,
Chat,
InputMediaPhoto,

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendMessage
from aiogram.api.types import Chat, Message
from aiogram.methods import Request, SendMessage
from aiogram.types import Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendPhoto
from aiogram.api.types import Chat, Message, PhotoSize
from aiogram.methods import Request, SendPhoto
from aiogram.types import Chat, Message, PhotoSize
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendPoll
from aiogram.api.types import Chat, Message, Poll, PollOption
from aiogram.methods import Request, SendPoll
from aiogram.types import Chat, Message, Poll, PollOption
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendSticker
from aiogram.api.types import Chat, Message, Sticker
from aiogram.methods import Request, SendSticker
from aiogram.types import Chat, Message, Sticker
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendVenue
from aiogram.api.types import Chat, Location, Message, Venue
from aiogram.methods import Request, SendVenue
from aiogram.types import Chat, Location, Message, Venue
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendVideo
from aiogram.api.types import Chat, Message, Video
from aiogram.methods import Request, SendVideo
from aiogram.types import Chat, Message, Video
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendVideoNote
from aiogram.api.types import BufferedInputFile, Chat, Message, VideoNote
from aiogram.methods import Request, SendVideoNote
from aiogram.types import BufferedInputFile, Chat, Message, VideoNote
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ import datetime
import pytest
from aiogram.api.methods import Request, SendVoice
from aiogram.api.types import Chat, Message, Voice
from aiogram.methods import Request, SendVoice
from aiogram.types import Chat, Message, Voice
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetChatAdministratorCustomTitle, SetChatTitle
from aiogram.methods import Request, SetChatAdministratorCustomTitle, SetChatTitle
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetChatDescription
from aiogram.methods import Request, SetChatDescription
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, SetChatPermissions
from aiogram.api.types import ChatPermissions
from aiogram.methods import Request, SetChatPermissions
from aiogram.types import ChatPermissions
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, SetChatPhoto
from aiogram.api.types import BufferedInputFile, InputFile
from aiogram.methods import Request, SetChatPhoto
from aiogram.types import BufferedInputFile, InputFile
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetChatStickerSet
from aiogram.methods import Request, SetChatStickerSet
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetChatTitle
from aiogram.methods import Request, SetChatTitle
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import Request, SetGameScore
from aiogram.api.types import Message
from aiogram.methods import Request, SetGameScore
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, SetMyCommands
from aiogram.api.types import BotCommand
from aiogram.methods import Request, SetMyCommands
from aiogram.types import BotCommand
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, SetPassportDataErrors
from aiogram.api.types import PassportElementError
from aiogram.methods import Request, SetPassportDataErrors
from aiogram.types import PassportElementError
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetStickerPositionInSet
from aiogram.methods import Request, SetStickerPositionInSet
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetStickerSetThumb
from aiogram.methods import Request, SetStickerSetThumb
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, SetWebhook
from aiogram.methods import Request, SetWebhook
from tests.mocked_bot import MockedBot

View file

@ -2,8 +2,8 @@ from typing import Union
import pytest
from aiogram.api.methods import Request, StopMessageLiveLocation
from aiogram.api.types import Message
from aiogram.methods import Request, StopMessageLiveLocation
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, StopPoll
from aiogram.api.types import Poll, PollOption
from aiogram.methods import Request, StopPoll
from aiogram.types import Poll, PollOption
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, UnbanChatMember
from aiogram.methods import Request, UnbanChatMember
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.methods import Request, UnpinChatMessage
from aiogram.methods import Request, UnpinChatMessage
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import pytest
from aiogram.api.methods import Request, UploadStickerFile
from aiogram.api.types import BufferedInputFile, File
from aiogram.methods import Request, UploadStickerFile
from aiogram.types import BufferedInputFile, File
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.api.methods import AnswerCallbackQuery
from aiogram.api.types import CallbackQuery, User
from aiogram.methods import AnswerCallbackQuery
from aiogram.types import CallbackQuery, User
class TestCallbackQuery:

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.types import ChatMember, User
from aiogram.types import ChatMember, User
user = User(id=42, is_bot=False, first_name="User", last_name=None)

View file

@ -1,5 +1,5 @@
from aiogram.api.methods import AnswerInlineQuery
from aiogram.api.types import InlineQuery, User
from aiogram.methods import AnswerInlineQuery
from aiogram.types import InlineQuery, User
class TestInlineQuery:

View file

@ -4,7 +4,7 @@ import pytest
from aresponses import ResponsesMockServer
from aiogram import Bot
from aiogram.api.types import BufferedInputFile, FSInputFile, InputFile, URLInputFile
from aiogram.types import BufferedInputFile, FSInputFile, InputFile, URLInputFile
class TestInputFile:

View file

@ -3,7 +3,7 @@ from typing import Any, Dict, Type, Union
import pytest
from aiogram.api.methods import (
from aiogram.methods import (
SendAnimation,
SendAudio,
SendContact,
@ -22,7 +22,7 @@ from aiogram.api.methods import (
SendVideoNote,
SendVoice,
)
from aiogram.api.types import (
from aiogram.types import (
Animation,
Audio,
Chat,

View file

@ -1,5 +1,5 @@
from aiogram.api.methods import AnswerPreCheckoutQuery
from aiogram.api.types import PreCheckoutQuery, User
from aiogram.methods import AnswerPreCheckoutQuery
from aiogram.types import PreCheckoutQuery, User
class TestPreCheckoutQuery:

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.types import ReplyKeyboardRemove
from aiogram.types import ReplyKeyboardRemove
class TestReplyKeyboardRemove:

View file

@ -1,5 +1,5 @@
from aiogram.api.methods import AnswerShippingQuery
from aiogram.api.types import LabeledPrice, ShippingAddress, ShippingOption, ShippingQuery, User
from aiogram.methods import AnswerShippingQuery
from aiogram.types import LabeledPrice, ShippingAddress, ShippingOption, ShippingQuery, User
class TestInlineQuery:

View file

@ -1,6 +1,6 @@
import pytest
from aiogram.api.types import User
from aiogram.types import User
class TestUser: