def _create_message(buttons=None, from_user=None, **kwargs): # if chat is not specified - assume inline message inline = not bool(kwargs.get('chat') or kwargs.get('chat_id')) msg_id = ('id' in kwargs and kwargs.pop('id')) or get_id() if not inline: chat_id = kwargs.get('chat_id') or kwargs.get('chat').id msg_id = Message.get_id(chat_id, msg_id) fields = { 'id': msg_id, 'date': timezone.now(), 'from_user': from_user or create_user(), 'inline_message_id': msg_id if inline else None, **kwargs, } msg = Message.objects.create(**fields) if buttons: msg.set_buttons(buttons) return msg
def test_get_id(self): assert Message.get_id('a', 'b', 'c') == 'c' assert Message.get_id('a', 'b') == 'a_b' assert Message.get_id('a', 'b_c') == 'b_c' assert Message.get_id('a', None) == 'a'