Odoo18-Base/addons/test_mail/tests/test_mail_management.py
2025-01-06 10:57:38 +07:00

55 lines
2.2 KiB
Python

# -*- 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.addons.test_mail.tests.common import TestRecipients
from odoo.tests import tagged
@tagged('mail_management')
class TestMailManagement(MailCommon, TestRecipients):
@classmethod
def setUpClass(cls):
super(TestMailManagement, cls).setUpClass()
cls.test_record = cls.env['mail.test.simple'].with_context(cls._test_context).create({'name': 'Test'})
cls._reset_mail_context(cls.test_record)
cls.msg = cls.test_record.message_post(body='TEST BODY', author_id=cls.partner_employee.id)
cls.notif_p1 = cls.env['mail.notification'].create({
'author_id': cls.msg.author_id.id,
'mail_message_id': cls.msg.id,
'res_partner_id': cls.partner_1.id,
'notification_type': 'email',
'notification_status': 'exception',
'failure_type': 'mail_smtp',
})
cls.notif_p2 = cls.env['mail.notification'].create({
'author_id': cls.msg.author_id.id,
'mail_message_id': cls.msg.id,
'res_partner_id': cls.partner_2.id,
'notification_type': 'email',
'notification_status': 'bounce',
'failure_type': 'unknown',
})
cls.partner_3 = cls.env['res.partner'].create({
'name': 'Partner3',
'email': 'partner3@example.com',
})
cls.notif_p3 = cls.env['mail.notification'].create({
'author_id': cls.msg.author_id.id,
'mail_message_id': cls.msg.id,
'res_partner_id': cls.partner_3.id,
'notification_type': 'email',
'notification_status': 'sent',
'failure_type': None,
})
def test_mail_notify_cancel(self):
self._reset_bus()
self.test_record.with_user(self.user_employee).notify_cancel_by_type('email')
self.assertEqual((self.notif_p1 | self.notif_p2 | self.notif_p3).mapped('notification_status'),
['canceled', 'canceled', 'sent'])
self.assertMessageBusNotifications(self.msg)