diff --git a/addons/test_mail/tests/test_message_post.py b/addons/test_mail/tests/test_message_post.py index 8e0a06320fb..cf03386a0e0 100644 --- a/addons/test_mail/tests/test_message_post.py +++ b/addons/test_mail/tests/test_message_post.py @@ -10,6 +10,7 @@ from odoo.addons.test_mail.models.test_mail_models import MailTestSimple from odoo.addons.test_mail.tests.common import TestMailCommon, TestRecipients from odoo.exceptions import AccessError from odoo.tools import mute_logger, formataddr +from odoo.api import call_kw class TestMessagePost(TestMailCommon, TestRecipients): @@ -294,3 +295,13 @@ class TestMessagePost(TestMailCommon, TestRecipients): subject='About %s' % test_record.name, body_content=test_record.name, attachments=[('first.txt', b'My first attachment', 'text/plain'), ('second.txt', b'My second attachment', 'text/plain')]) + + # This method should be run inside a post_install class to ensure that all + # message_post overrides are tested. + def test_message_post_return(self): + test_channel = self.env['mail.channel'].create({ + 'name': 'Test', + }) + # Use call_kw as shortcut to simulate a RPC call. + messageId = call_kw(self.env['mail.channel'], 'message_post', [test_channel.id], {'body': 'test'}) + self.assertTrue(isinstance(messageId, int)) diff --git a/addons/website_livechat/models/mail_channel.py b/addons/website_livechat/models/mail_channel.py index 86ab7aeb2c3..fd3189b8400 100644 --- a/addons/website_livechat/models/mail_channel.py +++ b/addons/website_livechat/models/mail_channel.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models, _ +from odoo import api, fields, models, _ class MailChannel(models.Model): @@ -62,6 +62,7 @@ class MailChannel(models.Model): return message + @api.returns('mail.message', lambda value: value.id) def message_post(self, **kwargs): """Override to mark the visitor as still connected. If the message sent is not from the operator (so if it's the visitor or