Все примеры
Все примеры использования от простых к сложным
Отправка текстового сообщения
def send_text_message_example(bot, message):
text = 'Пример отправки обычного текстового сообщения'
text_message = messages.create_message(
text=text,
sender=bot,
)
return actions.send_message(message.chat, text_message)
Пример теста
def test_send_text_message_example(self):
"""
Test /text_message: success
"""
chat = self.assertCommandWasHandled('/text_message', self.chat)
self.assertChatLastMessageTextEqual(
chat,
'Пример отправки обычного текстового сообщения',
)
Отправка текстового сообщения в формате HTML
def send_html_message_example(bot, message):
text = '<b>Пример</b> <i>отправки</i> <s>текстового</s> HTML сообщения'
text_message = messages.create_message(
text=text,
sender=bot,
format_type='HTML',
)
return actions.send_message(message.chat, text_message)
Пример теста
def test_send_html_message_example(self):
"""
Test /html_message: success
"""
chat = self.assertCommandWasHandled('/html_message', self.chat)
self.assertChatLastMessageTextEqual(
chat,
'<b>Пример</b> <i>отправки</i> <s>текстового</s> HTML сообщения',
)
Рендеринг шаблона в формате HTML
def render_template_example(bot, message):
context = {
'this': 'Это',
'message': 'сообщение',
'make': 'было создано по шаблону'
}
response_message = messages.create_template_message(
sender=bot,
template='demo/bot/reply.html',
context=context,
)
return actions.send_message(message.chat, response_message)
Пример теста
def test_render_template_example(self):
"""
Test /render_template: success
"""
chat = self.assertCommandWasHandled('/render_template', self.chat)
self.assertChatLastMessageTextEqual(
chat,
'<b>Это</b> <i>сообщение</i> было создано по шаблону',
)
Отправка ответа на сообщение
def echo_answer_example(bot, message):
text = f'На любое неизвестное сообщение я умею присылать его в ответ: {message.text}'
echo_reply = messages.create_reply(message, text, bot)
return actions.send_reply(echo_reply)
Пример теста
def test_echo_answer_example(self):
"""
Test send any text message: success
"""
text = 'any message'
chat = self.assertTextMessageWasHandled(text, self.chat)
self.assertChatLastMessageTextEqual(
chat,
f'На любое неизвестное сообщение я умею присылать его в ответ: {text}',
)
Отправка изображения
def send_picture_example(bot, message):
file_path = Path(settings.BASE_DIR) / 'static' / 'logo_1280_640.png'
image = messages.create_image(bot, file_path)
return actions.send_image(message.chat, image)
Пример теста
def test_send_picture_example(self):
"""
Test /send_picture: success
"""
chat = self.assertCommandWasHandled('/send_picture', self.chat)
last_message = chats.get_last_message(chat)
self.assertIsInstance(last_message, messages.Image)
self.assertIn('logo_1280_640.png', str(last_message.file_path))
Отправка изображения с заголовком
def send_picture_with_caption_example(bot, message):
file_path = Path(settings.BASE_DIR) / 'static' / 'logo_1280_640.png'
caption = messages.create_message('Это логотипы DTF', bot)
image = messages.create_image(bot, file_path, caption)
return actions.send_image(message.chat, image)
Пример теста
def test_send_picture_with_caption_example(self):
"""
Test /send_picture_with_caption: success
"""
chat = self.assertCommandWasHandled('/send_picture_with_caption', self.chat)
last_message = chats.get_last_message(chat)
self.assertIsNotNone(last_message.caption)
self.assertEqual('Это логотипы DTF', last_message.caption.text)
Отправка изображения с заголовком в формате HTML
def send_picture_with_html_caption_example(bot, message):
file_path = Path(settings.BASE_DIR) / 'static' / 'logo_1280_640.png'
caption = messages.create_message(
'Это логотипы <b>DTF</b>',
bot,
format_type='HTML'
)
image = messages.create_image(bot, file_path, caption)
return actions.send_image(message.chat, image)
Пример теста
def test_send_picture_with_html_caption_example(self):
"""
Test /send_picture_with_caption: success
"""
chat = self.assertCommandWasHandled('/send_picture_with_html_caption', self.chat)
last_message = chats.get_last_message(chat)
self.assertIsNotNone(last_message.caption)
self.assertEqual('Это логотипы <b>DTF</b>', last_message.caption.text)