diff options
| author | Thibault Delavallée <tde@odoo.com> | 2021-04-26 12:38:41 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2021-04-27 09:15:43 +0000 |
| commit | 99f9f6372b3bd18b6dc10b2ff181920dfe90ec80 (patch) | |
| tree | 44769cb36866f8444688a0698b8e10ef63d22f16 | |
| parent | 4cf75bb1767fe7524c8e4d895d84ad2b56ef404d (diff) | |
[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).
Backport of odoo/odoo@b36b74fa570937795c598a9f08086b13ff7773c6 done in master (14.4).
LINKS
Task ID-2117639
COM PR odoo/odoo#40931
| -rw-r--r-- | addons/mass_mailing/tests/test_mailing_internals.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/addons/mass_mailing/tests/test_mailing_internals.py b/addons/mass_mailing/tests/test_mailing_internals.py index df26c19ce35..5fb3771a176 100644 --- a/addons/mass_mailing/tests/test_mailing_internals.py +++ b/addons/mass_mailing/tests/test_mailing_internals.py @@ -175,6 +175,79 @@ class TestMassMailFeatures(MassMailCommon): @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): """ Test mailing on res.partner model: ensure default recipients are correctly computed """ |
