mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-06 16:15:51 +00:00
Fixed default LinkPreviewOptions JSON serialization (#1419)
* Fixed default link preview options serialization * Added changelog
This commit is contained in:
parent
eef50a2edb
commit
53849b01a7
3 changed files with 15 additions and 3 deletions
2
CHANGES/1418.bugfix.rst
Normal file
2
CHANGES/1418.bugfix.rst
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
Fixed JSON serialization of the :code:`LinkPreviewOptions` class while it is passed
|
||||||
|
as bot-wide default options.
|
||||||
|
|
@ -38,7 +38,7 @@ from aiogram.exceptions import (
|
||||||
|
|
||||||
from ...methods import Response, TelegramMethod
|
from ...methods import Response, TelegramMethod
|
||||||
from ...methods.base import TelegramType
|
from ...methods.base import TelegramType
|
||||||
from ...types import InputFile
|
from ...types import InputFile, TelegramObject
|
||||||
from ..default import Default
|
from ..default import Default
|
||||||
from ..telegram import PRODUCTION, TelegramAPIServer
|
from ..telegram import PRODUCTION, TelegramAPIServer
|
||||||
from .middlewares.manager import RequestMiddlewareManager
|
from .middlewares.manager import RequestMiddlewareManager
|
||||||
|
|
@ -233,7 +233,13 @@ class BaseSession(abc.ABC):
|
||||||
return str(round(value.timestamp()))
|
return str(round(value.timestamp()))
|
||||||
if isinstance(value, Enum):
|
if isinstance(value, Enum):
|
||||||
return self.prepare_value(value.value, bot=bot, files=files)
|
return self.prepare_value(value.value, bot=bot, files=files)
|
||||||
|
if isinstance(value, TelegramObject):
|
||||||
|
return self.prepare_value(
|
||||||
|
value.model_dump(warnings=False),
|
||||||
|
bot=bot,
|
||||||
|
files=files,
|
||||||
|
_dumps_json=_dumps_json,
|
||||||
|
)
|
||||||
if _dumps_json:
|
if _dumps_json:
|
||||||
return self.json_dumps(value)
|
return self.json_dumps(value)
|
||||||
return value
|
return value
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ from aiogram.exceptions import (
|
||||||
TelegramUnauthorizedError,
|
TelegramUnauthorizedError,
|
||||||
)
|
)
|
||||||
from aiogram.methods import DeleteMessage, GetMe, TelegramMethod
|
from aiogram.methods import DeleteMessage, GetMe, TelegramMethod
|
||||||
from aiogram.types import UNSET_PARSE_MODE, User
|
from aiogram.types import UNSET_PARSE_MODE, User, LinkPreviewOptions
|
||||||
from aiogram.types.base import UNSET_DISABLE_WEB_PAGE_PREVIEW, UNSET_PROTECT_CONTENT
|
from aiogram.types.base import UNSET_DISABLE_WEB_PAGE_PREVIEW, UNSET_PROTECT_CONTENT
|
||||||
from tests.mocked_bot import MockedBot
|
from tests.mocked_bot import MockedBot
|
||||||
|
|
||||||
|
|
@ -111,6 +111,10 @@ class TestBaseSession:
|
||||||
),
|
),
|
||||||
"1494994302",
|
"1494994302",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
{"link_preview": LinkPreviewOptions(is_disabled=True)},
|
||||||
|
'{"link_preview": {"is_disabled": true}}',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_prepare_value(self, value: Any, result: str, bot: MockedBot):
|
def test_prepare_value(self, value: Any, result: str, bot: MockedBot):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue