mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-23 15:02:56 +03:00
Fix reuse of captions during send msg with file (#4500)
This commit is contained in:
parent
85c4a91317
commit
a77835a7d9
|
@ -826,6 +826,9 @@ class MessageMethods:
|
|||
await client.send_message(chat, 'Hi, future!', schedule=timedelta(minutes=5))
|
||||
"""
|
||||
if file is not None:
|
||||
if isinstance(message, types.Message):
|
||||
formatting_entities = formatting_entities or message.entities
|
||||
message = message.message
|
||||
return await self.send_file(
|
||||
entity, file, caption=message, reply_to=reply_to,
|
||||
attributes=attributes, parse_mode=parse_mode,
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
import inspect
|
||||
from unittest import mock
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
|
||||
from telethon import TelegramClient
|
||||
from telethon.client import MessageMethods
|
||||
from telethon.tl.types import PeerChat, MessageMediaDocument, Message, MessageEntityBold
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
@ -38,3 +42,42 @@ async def test_send_message_with_file_forwards_args():
|
|||
|
||||
client = MockedClient()
|
||||
assert (await client.send_message('a', file='b', **arguments)) == sentinel
|
||||
|
||||
|
||||
class TestMessageMethods:
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
'formatting_entities',
|
||||
([MessageEntityBold(offset=0, length=0)], None)
|
||||
)
|
||||
async def test_send_msg_and_file(self, formatting_entities):
|
||||
async def async_func(result): # AsyncMock was added only in 3.8
|
||||
return result
|
||||
msg_methods = MessageMethods()
|
||||
expected_result = Message(
|
||||
id=0, peer_id=PeerChat(chat_id=0), message='', date=None,
|
||||
)
|
||||
entity = 'test_entity'
|
||||
message = Message(
|
||||
id=1, peer_id=PeerChat(chat_id=0), message='expected_caption', date=None,
|
||||
entities=[MessageEntityBold(offset=9, length=9)],
|
||||
)
|
||||
media_file = MessageMediaDocument()
|
||||
|
||||
with mock.patch.object(
|
||||
target=MessageMethods, attribute='send_file',
|
||||
new=MagicMock(return_value=async_func(expected_result)), create=True,
|
||||
) as mock_obj:
|
||||
result = await msg_methods.send_message(
|
||||
entity=entity, message=message, file=media_file,
|
||||
formatting_entities=formatting_entities,
|
||||
)
|
||||
mock_obj.assert_called_once_with(
|
||||
entity, media_file, caption=message.message,
|
||||
formatting_entities=formatting_entities or message.entities,
|
||||
reply_to=None, silent=None, attributes=None, parse_mode=(),
|
||||
force_document=False, thumb=None, buttons=None,
|
||||
clear_draft=False, schedule=None, supports_streaming=False,
|
||||
comment_to=None, background=None, nosound_video=None,
|
||||
)
|
||||
assert result == expected_result
|
||||
|
|
Loading…
Reference in New Issue
Block a user