Added full support of Bot API 7.2 (#1444)

* Added base support of Bot API 7.2

* Added base support of Bot API 7.2

* Fixing tests and content types for Telegram Bot API 7.2 update (#1453)

* Fixing tests and content types for Telegram Bot API 7.2

* Adding changelog for 1453 PR

* Fixes + coverage

* Replace `BusinessConnection.date` type

* Reformat code

* Refactor UserContextMiddleware to use EventContext class

This update significantly refactors UserContextMiddleware to leverage a new class, EventContext. Instead of resolving event context as a tuple, it now produces an instance of EventContext. Additional adjustments include supporting a business connection ID for event context identification and facilitating backwards compatibility. Tests and other files were also updated accordingly for these changes.

* Cover FSM key builder (business_connection_id

* Added changelog

---------

Co-authored-by: RoLOQ <roman.fedunn@gmail.com>
This commit is contained in:
Alex Root Junior 2024-04-22 13:48:49 +03:00 committed by GitHub
parent 5f157beb26
commit 057478621b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
147 changed files with 3509 additions and 651 deletions

View file

@ -16,6 +16,8 @@ from aiogram.dispatcher.event.bases import UNHANDLED, SkipHandler
from aiogram.dispatcher.router import Router
from aiogram.methods import GetMe, GetUpdates, SendMessage, TelegramMethod
from aiogram.types import (
BusinessConnection,
BusinessMessagesDeleted,
CallbackQuery,
Chat,
ChatBoost,
@ -525,6 +527,65 @@ class TestDispatcher:
True,
False,
),
pytest.param(
"deleted_business_messages",
Update(
update_id=42,
deleted_business_messages=BusinessMessagesDeleted(
chat=Chat(id=-42, type="private"),
business_connection_id="qwerty",
message_ids=[1, 2, 3],
),
),
True,
False,
),
pytest.param(
"business_connection",
Update(
update_id=42,
business_connection=BusinessConnection(
id="qwerty",
user=User(id=42, is_bot=False, first_name="Test"),
user_chat_id=42,
date=datetime.datetime.now(),
can_reply=True,
is_enabled=True,
),
),
False,
True,
),
pytest.param(
"edited_business_message",
Update(
update_id=42,
edited_business_message=Message(
message_id=42,
date=datetime.datetime.now(),
text="test",
chat=Chat(id=42, type="private"),
from_user=User(id=42, is_bot=False, first_name="Test"),
),
),
True,
True,
),
pytest.param(
"business_message",
Update(
update_id=42,
business_message=Message(
message_id=42,
date=datetime.datetime.now(),
text="test",
chat=Chat(id=42, type="private"),
from_user=User(id=42, is_bot=False, first_name="Test"),
),
),
True,
True,
),
],
)
async def test_listen_update(