[IMP] test_mass_mailing: add test for archives / deletion
Purpose of this commit is to add tests for current behavior of ``keep archives`` field on mailing, used in combination of ``reply-to`` target (either new thread or update existing threads). LINKS Task ID-2117639 COM PR odoo/odoo#40931
This commit is contained in:
@@ -213,6 +213,79 @@ class TestMassMailFeatures(MassMailCommon, CronMixinCase):
|
||||
capt.records.ensure_one()
|
||||
self.assertLessEqual(capt.records.call_at, truth)
|
||||
|
||||
@users('user_marketing')
|
||||
@mute_logger('odoo.addons.mail.models.mail_mail')
|
||||
def test_mailing_deletion(self):
|
||||
""" Test deletion in various use case, depending on reply-to """
|
||||
# 1- Keep archives and reply-to set to 'answer = new thread'
|
||||
mailing = self.env['mailing.mailing'].create({
|
||||
'name': 'TestSource',
|
||||
'subject': 'TestDeletion',
|
||||
'body_html': "<div>Hello {object.name}</div>",
|
||||
'mailing_model_id': self.env['ir.model']._get('mailing.list').id,
|
||||
'contact_list_ids': [(6, 0, self.mailing_list_1.ids)],
|
||||
'keep_archives': True,
|
||||
'reply_to_mode': 'email',
|
||||
'reply_to': self.email_reply_to,
|
||||
})
|
||||
self.assertEqual(self.mailing_list_1.contact_ids.message_ids, self.env['mail.message'])
|
||||
|
||||
with self.mock_mail_gateway(mail_unlink_sent=True):
|
||||
mailing.action_send_mail()
|
||||
|
||||
self.assertEqual(len(self._mails), 3)
|
||||
self.assertEqual(len(self._new_mails.exists()), 3)
|
||||
self.assertEqual(len(self.mailing_list_1.contact_ids.message_ids), 3)
|
||||
|
||||
# 2- Keep archives and reply-to set to 'answer = update thread'
|
||||
self.mailing_list_1.contact_ids.message_ids.unlink()
|
||||
mailing = mailing.copy()
|
||||
mailing.write({
|
||||
'reply_to_mode': 'thread',
|
||||
})
|
||||
self.assertEqual(self.mailing_list_1.contact_ids.message_ids, self.env['mail.message'])
|
||||
|
||||
with self.mock_mail_gateway(mail_unlink_sent=True):
|
||||
mailing.action_send_mail()
|
||||
|
||||
self.assertEqual(len(self._mails), 3)
|
||||
self.assertEqual(len(self._new_mails.exists()), 3)
|
||||
self.assertEqual(len(self.mailing_list_1.contact_ids.message_ids), 3)
|
||||
|
||||
# 3- Remove archives and reply-to set to 'answer = new thread'
|
||||
self.mailing_list_1.contact_ids.message_ids.unlink()
|
||||
mailing = mailing.copy()
|
||||
mailing.write({
|
||||
'keep_archives': False,
|
||||
'reply_to_mode': 'email',
|
||||
'reply_to': self.email_reply_to,
|
||||
})
|
||||
self.assertEqual(self.mailing_list_1.contact_ids.message_ids, self.env['mail.message'])
|
||||
|
||||
with self.mock_mail_gateway(mail_unlink_sent=True):
|
||||
mailing.action_send_mail()
|
||||
|
||||
self.assertEqual(len(self._mails), 3)
|
||||
self.assertEqual(len(self._new_mails.exists()), 0)
|
||||
self.assertEqual(self.mailing_list_1.contact_ids.message_ids, self.env['mail.message'])
|
||||
|
||||
# 4- Remove archives and reply-to set to 'answer = update thread'
|
||||
# Imply keeping mail.message for gateway reply)
|
||||
self.mailing_list_1.contact_ids.message_ids.unlink()
|
||||
mailing = mailing.copy()
|
||||
mailing.write({
|
||||
'keep_archives': False,
|
||||
'reply_to_mode': 'thread',
|
||||
})
|
||||
self.assertEqual(self.mailing_list_1.contact_ids.message_ids, self.env['mail.message'])
|
||||
|
||||
with self.mock_mail_gateway(mail_unlink_sent=True):
|
||||
mailing.action_send_mail()
|
||||
|
||||
self.assertEqual(len(self._mails), 3)
|
||||
self.assertEqual(len(self._new_mails.exists()), 0)
|
||||
self.assertEqual(len(self.mailing_list_1.contact_ids.message_ids), 3)
|
||||
|
||||
@users('user_marketing')
|
||||
@mute_logger('odoo.addons.mail.models.mail_mail')
|
||||
def test_mailing_on_res_partner(self):
|
||||
|
||||
Reference in New Issue
Block a user