Added full support for Bot API 8.0 (#1606)

* Added full support of Bot API 8.0

* Added tests

* Reformat code

* Added changelog

* Bump API version
This commit is contained in:
Alex Root Junior 2024-11-17 23:18:42 +02:00 committed by GitHub
parent f2916ca03f
commit dfc88fc907
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
169 changed files with 1890 additions and 162 deletions

View file

@ -1,4 +1,4 @@
from aiogram.methods import AnswerCallbackQuery, Request
from aiogram.methods import AnswerCallbackQuery
from tests.mocked_bot import MockedBot

View file

@ -1,11 +1,5 @@
from aiogram import Bot
from aiogram.methods import AnswerInlineQuery, Request
from aiogram.types import (
InlineQueryResult,
InlineQueryResultArticle,
InlineQueryResultPhoto,
InputTextMessageContent,
)
from aiogram.methods import AnswerInlineQuery
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import AnswerPreCheckoutQuery, Request
from aiogram.methods import AnswerPreCheckoutQuery
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import AnswerShippingQuery, Request
from aiogram.methods import AnswerShippingQuery
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import ApproveChatJoinRequest, Request
from aiogram.methods import ApproveChatJoinRequest
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import BanChatMember, Request
from aiogram.methods import BanChatMember
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import BanChatSenderChat, Request
from aiogram.methods import BanChatSenderChat
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Close, Request
from aiogram.methods import Close
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CloseForumTopic, Request
from aiogram.methods import CloseForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CloseGeneralForumTopic, Request
from aiogram.methods import CloseGeneralForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CopyMessage, Request
from aiogram.methods import CopyMessage
from aiogram.types import MessageId
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CreateChatInviteLink, Request
from aiogram.methods import CreateChatInviteLink
from aiogram.types import ChatInviteLink, User
from tests.mocked_bot import MockedBot

View file

@ -1,10 +1,6 @@
from datetime import timedelta
from aiogram.methods import (
CreateChatInviteLink,
CreateChatSubscriptionInviteLink,
Request,
)
from aiogram.methods import CreateChatSubscriptionInviteLink
from aiogram.types import ChatInviteLink, User
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CreateForumTopic, Request
from aiogram.methods import CreateForumTopic
from aiogram.types import ForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import CreateInvoiceLink, Request
from aiogram.methods import CreateInvoiceLink
from aiogram.types import LabeledPrice
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.enums import StickerFormat
from aiogram.methods import CreateNewStickerSet, Request
from aiogram.methods import CreateNewStickerSet
from aiogram.types import FSInputFile, InputSticker
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeclineChatJoinRequest, Request
from aiogram.methods import DeclineChatJoinRequest
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteChatPhoto, Request
from aiogram.methods import DeleteChatPhoto
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteChatStickerSet, Request
from aiogram.methods import DeleteChatStickerSet
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteForumTopic, Request
from aiogram.methods import DeleteForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteMessage, Request
from aiogram.methods import DeleteMessage
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteMyCommands, Request
from aiogram.methods import DeleteMyCommands
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteStickerFromSet, Request
from aiogram.methods import DeleteStickerFromSet
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteStickerSet, Request
from aiogram.methods import DeleteStickerSet
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import DeleteWebhook, Request
from aiogram.methods import DeleteWebhook
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import EditChatInviteLink, Request
from aiogram.methods import EditChatInviteLink
from aiogram.types import ChatInviteLink, User
from tests.mocked_bot import MockedBot

View file

@ -1,11 +1,4 @@
from datetime import timedelta
from aiogram.methods import (
CreateChatInviteLink,
CreateChatSubscriptionInviteLink,
EditChatSubscriptionInviteLink,
Request,
)
from aiogram.methods import EditChatSubscriptionInviteLink
from aiogram.types import ChatInviteLink, User
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import EditForumTopic, Request
from aiogram.methods import EditForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import EditGeneralForumTopic, Request
from aiogram.methods import EditGeneralForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import datetime
from typing import Union
from aiogram.methods import EditMessageCaption, Request
from aiogram.methods import EditMessageCaption
from aiogram.types import Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import Union
from aiogram.methods import EditMessageLiveLocation, Request
from aiogram.methods import EditMessageLiveLocation
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import Union
from aiogram.methods import EditMessageMedia, Request
from aiogram.methods import EditMessageMedia
from aiogram.types import BufferedInputFile, InputMediaPhoto, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import Union
from aiogram.methods import EditMessageReplyMarkup, Request
from aiogram.methods import EditMessageReplyMarkup
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import Union
from aiogram.methods import EditMessageText, Request
from aiogram.methods import EditMessageText
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -0,0 +1,15 @@
from aiogram.methods import EditUserStarSubscription
from tests.mocked_bot import MockedBot
class TestEditUserStarSubscription:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(EditUserStarSubscription, ok=True, result=True)
response: bool = await bot.edit_user_star_subscription(
user_id=42,
telegram_payment_charge_id="telegram_payment_charge_id",
is_canceled=False,
)
request = bot.get_request()
assert response == prepare_result.result

View file

@ -1,4 +1,4 @@
from aiogram.methods import ExportChatInviteLink, Request
from aiogram.methods import ExportChatInviteLink
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import ForwardMessage, Request
from aiogram.methods import ForwardMessage
from aiogram.types import Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -0,0 +1,32 @@
from aiogram.methods import GetAvailableGifts
from aiogram.types import Gift, Gifts, Sticker
from tests.mocked_bot import MockedBot
class TestGetAvailableGifts:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
GetAvailableGifts,
ok=True,
result=Gifts(
gifts=[
Gift(
id="gift_id",
sticker=Sticker(
file_id="file_id",
file_unique_id="file_id",
type="regular",
width=512,
height=512,
is_animated=False,
is_video=False,
),
star_count=1,
)
]
),
)
response: Gifts = await bot.get_available_gifts()
request = bot.get_request()
assert response == prepare_result.result

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetChatAdministrators, Request
from aiogram.methods import GetChatAdministrators
from aiogram.types import ChatMember, ChatMemberOwner, User
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.methods import GetChatMember, Request
from aiogram.types import ChatMember, ChatMemberOwner, User
from aiogram.methods import GetChatMember
from aiogram.types import ChatMemberOwner, User
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import GetChatMemberCount, Request
from aiogram.methods import GetChatMemberCount
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import GetChatMenuButton, Request
from aiogram.methods import GetChatMenuButton
from aiogram.types import MenuButton, MenuButtonDefault
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetCustomEmojiStickers, Request
from aiogram.methods import GetCustomEmojiStickers
from aiogram.types import Sticker
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetForumTopicIconStickers, Request
from aiogram.methods import GetForumTopicIconStickers
from aiogram.types import Sticker
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetGameHighScores, Request
from aiogram.methods import GetGameHighScores
from aiogram.types import GameHighScore, User
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetMyCommands, Request
from aiogram.methods import GetMyCommands
from aiogram.types import BotCommand
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import GetMyDefaultAdministratorRights, Request
from aiogram.methods import GetMyDefaultAdministratorRights
from aiogram.types import ChatAdministratorRights
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import GetMyDescription, Request
from aiogram.methods import GetMyDescription
from aiogram.types import BotDescription
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.methods import GetMyName
from aiogram.types import BotDescription, BotName
from aiogram.types import BotName
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import GetMyShortDescription, Request
from aiogram.methods import GetMyShortDescription
from aiogram.types import BotShortDescription
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,6 +1,6 @@
from typing import List
from aiogram.methods import GetUpdates, Request
from aiogram.methods import GetUpdates
from aiogram.types import Update
from tests.mocked_bot import MockedBot

View file

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

View file

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

View file

@ -1,4 +1,4 @@
from aiogram.methods import HideGeneralForumTopic, Request
from aiogram.methods import HideGeneralForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import LeaveChat, Request
from aiogram.methods import LeaveChat
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import LogOut, Request
from aiogram.methods import LogOut
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import PinChatMessage, Request
from aiogram.methods import PinChatMessage
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import PromoteChatMember, Request
from aiogram.methods import PromoteChatMember
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,4 @@
from aiogram.enums import StickerFormat
from aiogram.methods import AddStickerToSet, RefundStarPayment
from aiogram.types import InputSticker
from aiogram.methods import RefundStarPayment
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import ReopenForumTopic, Request
from aiogram.methods import ReopenForumTopic
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import ReopenGeneralForumTopic, Request
from aiogram.methods import ReopenGeneralForumTopic
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, RevokeChatInviteLink
from aiogram.methods import RevokeChatInviteLink
from aiogram.types import ChatInviteLink, User
from tests.mocked_bot import MockedBot

View file

@ -0,0 +1,34 @@
from datetime import datetime, timedelta
from aiogram.methods import SavePreparedInlineMessage
from aiogram.types import (
InlineQueryResultArticle,
InputTextMessageContent,
PreparedInlineMessage,
)
from tests.mocked_bot import MockedBot
class TestSavePreparedInlineMessage:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
SavePreparedInlineMessage,
ok=True,
result=PreparedInlineMessage(
id="id",
expiration_date=datetime.now() + timedelta(days=1),
),
)
response: PreparedInlineMessage = await bot.save_prepared_inline_message(
user_id=42,
result=InlineQueryResultArticle(
id="id",
title="title",
input_message_content=InputTextMessageContent(
message_text="message_text",
),
),
)
request = bot.get_request()
assert response == prepare_result.result

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendAnimation
from aiogram.methods import SendAnimation
from aiogram.types import Animation, Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendAudio
from aiogram.methods import SendAudio
from aiogram.types import Audio, Chat, Message
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.enums import ChatAction
from aiogram.methods import Request, SendChatAction
from aiogram.methods import SendChatAction
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendContact
from aiogram.methods import SendContact
from aiogram.types import Chat, Contact, Message
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendDocument
from aiogram.methods import SendDocument
from aiogram.types import Chat, Document, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendGame
from aiogram.methods import SendGame
from aiogram.types import Chat, Game, Message, PhotoSize
from tests.mocked_bot import MockedBot

View file

@ -0,0 +1,11 @@
from aiogram.methods import SendGift
from tests.mocked_bot import MockedBot
class TestSendGift:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(SendGift, ok=True, result=True)
response: bool = await bot.send_gift(user_id=42, gift_id="gift_id")
request = bot.get_request()
assert response == prepare_result.result

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendInvoice
from aiogram.methods import SendInvoice
from aiogram.types import Chat, Invoice, LabeledPrice, Message
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendLocation
from aiogram.methods import SendLocation
from aiogram.types import Chat, Location, Message
from tests.mocked_bot import MockedBot

View file

@ -1,7 +1,7 @@
import datetime
from typing import List
from aiogram.methods import Request, SendMediaGroup
from aiogram.methods import SendMediaGroup
from aiogram.types import (
BufferedInputFile,
Chat,

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendMessage
from aiogram.methods import SendMessage
from aiogram.types import Chat, ForceReply, Message, ReplyKeyboardRemove
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendPhoto
from aiogram.methods import SendPhoto
from aiogram.types import Chat, Message, PhotoSize
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendPoll
from aiogram.methods import SendPoll
from aiogram.types import Chat, Message, Poll, PollOption
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendSticker
from aiogram.methods import SendSticker
from aiogram.types import Chat, Message, Sticker
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendVenue
from aiogram.methods import SendVenue
from aiogram.types import Chat, Location, Message, Venue
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendVideo
from aiogram.methods import SendVideo
from aiogram.types import Chat, Message, Video
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendVideoNote
from aiogram.methods import SendVideoNote
from aiogram.types import BufferedInputFile, Chat, Message, VideoNote
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
import datetime
from aiogram.methods import Request, SendVoice
from aiogram.methods import SendVoice
from aiogram.types import Chat, Message, Voice
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatAdministratorCustomTitle
from aiogram.methods import SetChatAdministratorCustomTitle
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatDescription
from aiogram.methods import SetChatDescription
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatMenuButton
from aiogram.methods import SetChatMenuButton
from tests.mocked_bot import MockedBot

View file

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

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatPhoto
from aiogram.methods import SetChatPhoto
from aiogram.types import BufferedInputFile
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatStickerSet
from aiogram.methods import SetChatStickerSet
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetChatTitle
from aiogram.methods import SetChatTitle
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetCustomEmojiStickerSetThumbnail
from aiogram.methods import SetCustomEmojiStickerSetThumbnail
from tests.mocked_bot import MockedBot

View file

@ -1,6 +1,6 @@
from typing import Union
from aiogram.methods import Request, SetGameScore
from aiogram.methods import SetGameScore
from aiogram.types import Message
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,4 @@
from aiogram.methods import Request, SetMyCommands
from aiogram.types import BotCommand
from aiogram.methods import SetMyCommands
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetMyDefaultAdministratorRights
from aiogram.methods import SetMyDefaultAdministratorRights
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetMyDescription
from aiogram.methods import SetMyDescription
from tests.mocked_bot import MockedBot

View file

@ -1,4 +1,4 @@
from aiogram.methods import Request, SetMyDescription, SetMyShortDescription
from aiogram.methods import SetMyShortDescription
from tests.mocked_bot import MockedBot

View file

@ -1,5 +1,5 @@
from aiogram.methods import Request, SetPassportDataErrors
from aiogram.types import PassportElementError, PassportElementErrorFile
from aiogram.methods import SetPassportDataErrors
from aiogram.types import PassportElementErrorFile
from tests.mocked_bot import MockedBot

Some files were not shown because too many files have changed in this diff Show more