# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.addons.mail.tests.common import MailCommon from odoo.tests import tagged from odoo.tools import mute_logger @tagged('mail_followers') class TestInvite(MailCommon): @mute_logger('odoo.addons.mail.models.mail_mail') def test_invite_email(self): test_record = self.env['mail.test.simple'].with_context(self._test_context).create({'name': 'Test', 'email_from': 'ignasse@example.com'}) test_partner = self.env['res.partner'].with_context(self._test_context).create({ 'name': 'Valid Lelitre', 'email': 'valid.lelitre@agrolait.com'}) mail_invite = self.env['mail.wizard.invite'].with_context({ 'default_res_model': 'mail.test.simple', 'default_res_id': test_record.id }).with_user(self.user_employee).create({ 'partner_ids': [(4, test_partner.id), (4, self.user_admin.partner_id.id)], 'notify': True}) with self.mock_mail_app(), self.mock_mail_gateway(): mail_invite.add_followers() # Check added followers and that notifications are sent. # Admin notification preference is inbox so the notification must be of inbox type # while partner_employee must receive it by email. self.assertEqual(test_record.message_partner_ids, test_partner | self.user_admin.partner_id) self.assertEqual(len(self._new_msgs), 1) self.assertEqual(len(self._mails), 1) self.assertSentEmail(self.partner_employee, [test_partner]) self.assertNotSentEmail([self.partner_admin]) self.assertNotified( self._new_msgs[0], [{'partner': self.partner_admin, 'type': 'inbox', 'is_read': False}] )