Added support for Bot API 7.0 (#1387)

* Added support for Bot API 7.0

* Fixed available tests

* Fixed text decorations

* Bot API 7.0 tests for ForwardMessages

* Bot API 7.0 tests for CopyMessages

* Bot API 7.0 tests for DeleteMessages

* Bot API 7.0 tests for GetUserChatBoosts

* Bot API 7.0 tests for SetMessageReaction

* Fixed custom_emoji attribute name

* Fixed tests

* Test parsing CallbackQuery message (inaccessible and accessible)

* Added changes description

* Bot API 7.0 tests for dispatcher handle update message_reaction

* Bot API 7.0 tests for dispatcher handle update message_reaction_count

* Bot API 7.0 tests for dispatcher handle update chat_boost

* Bot API 7.0 tests for dispatcher handle update removed_chat_boost

* fix tests: update ReactionTypeCustomEmoji custom_emoji -> custom_emoji_id

* micro fix Markdown V2 blockquote

* add tests for Markdown tools

* fix markdown test apply single entity

* add tests coverage for Message.react

* check that all messages and content types are covered for Message.content_type

* sort imports in tests (run `make reformat lint`)

* update Giveaway objects Unix time field to DateTime type

* Update Message.content_type property

* upgrade tests for message content_types and sent_copy

* Update Giveaway type generation config

* Update GiveawayWinners and PassportFile types generation configs

---------

Co-authored-by: Suren Khorenyan <surenkhorenyan@gmail.com>
This commit is contained in:
Alex Root Junior 2023-12-31 01:40:44 +02:00 committed by GitHub
parent 756cfeba0a
commit 6795b3de05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
244 changed files with 9401 additions and 1715 deletions

View file

@ -0,0 +1,29 @@
from random import randint
from aiogram.methods import CopyMessages
from aiogram.types import MessageId
from tests.mocked_bot import MockedBot
class TestCopyMessages:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
CopyMessages,
ok=True,
result=[
MessageId(message_id=randint(100, 200)),
MessageId(message_id=randint(300, 400)),
],
)
response: list[MessageId] = await bot.copy_messages(
chat_id=randint(1000, 9999),
from_chat_id=randint(1000, 9999),
message_ids=[
randint(1000, 4999),
randint(5000, 9999),
],
)
request = bot.get_request()
assert request
assert response == prepare_result.result

View file

@ -0,0 +1,19 @@
from aiogram.methods import DeleteMessages
from tests.mocked_bot import MockedBot
class TestDeleteMessages:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
DeleteMessages,
ok=True,
result=True,
)
response: bool = await bot.delete_messages(
chat_id=42,
message_ids=[13, 77],
)
request = bot.get_request()
assert request
assert response == prepare_result.result

View file

@ -20,4 +20,5 @@ class TestForwardMessage:
response: Message = await bot.forward_message(chat_id=42, from_chat_id=42, message_id=42)
request = bot.get_request()
assert request
assert response == prepare_result.result

View file

@ -0,0 +1,29 @@
from random import randint
from aiogram.methods import ForwardMessages
from aiogram.types import MessageId
from tests.mocked_bot import MockedBot
class TestForwardMessages:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
ForwardMessages,
ok=True,
result=[
MessageId(message_id=randint(100, 200)),
MessageId(message_id=randint(200, 300)),
],
)
response: list[MessageId] = await bot.forward_messages(
chat_id=randint(10, 50),
from_chat_id=randint(50, 99),
message_ids=[
randint(400, 500),
randint(600, 700),
],
)
request = bot.get_request()
assert request
assert response == prepare_result.result

View file

@ -0,0 +1,52 @@
from datetime import datetime, timedelta
from random import randint
from aiogram.methods import GetUserChatBoosts
from aiogram.types import (
ChatBoost,
ChatBoostSourceGiveaway,
ChatBoostSourcePremium,
User,
UserChatBoosts,
)
from tests.mocked_bot import MockedBot
class TestGetUserChatBoosts:
async def test_bot_method(self, bot: MockedBot):
now = datetime.now()
user = User(
id=randint(200, 500),
is_bot=False,
first_name="name",
)
prepare_result = bot.add_result_for(
GetUserChatBoosts,
ok=True,
result=UserChatBoosts(
boosts=[
ChatBoost(
boost_id="eggs",
add_date=now - timedelta(days=7),
expiration_date=now + timedelta(days=14),
source=ChatBoostSourceGiveaway(
giveaway_message_id=randint(100, 300),
),
),
ChatBoost(
boost_id="spam",
add_date=now - timedelta(days=3),
expiration_date=now + timedelta(days=21),
source=ChatBoostSourcePremium(user=user),
),
]
),
)
response: UserChatBoosts = await bot.get_user_chat_boosts(
chat_id=randint(100, 200),
user_id=user.id,
)
request = bot.get_request()
assert request
assert response == prepare_result.result

View file

@ -0,0 +1,25 @@
from random import randint
from aiogram.methods import SetMessageReaction
from aiogram.types import ReactionTypeCustomEmoji
from tests.mocked_bot import MockedBot
class TestSetMessageReaction:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(
SetMessageReaction,
ok=True,
result=True,
)
response: bool = await bot.set_message_reaction(
chat_id=randint(200, 300),
message_id=randint(100, 200),
reaction=[
ReactionTypeCustomEmoji(custom_emoji_id="qwerty"),
],
)
request = bot.get_request()
assert request
assert response == prepare_result.result