Все примеры

Все примеры использования от простых к сложным

Отправка текстового сообщения

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)