From 3450e0171bbcdc8ef9d65670d4fd04da07a01499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 15 Nov 2023 13:21:59 +0100 Subject: [PATCH] [IMP] mass_mailing: add test helper to simulate opening mails Add a tool to simulate opening a mailing at trace level in addition to existing tools to simulate a click or a bounce Task-3506681 (MA: Test cleanup) Prepares Task-2981581 (MA: Fix trace duplication and various issues) X-original-commit: 1d4829e0597e4498663542381882ff810c5e42b5 Part-of: odoo/odoo#143088 --- addons/mass_mailing/tests/common.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/addons/mass_mailing/tests/common.py b/addons/mass_mailing/tests/common.py index c6523a25d37..6eca0bfacc3 100644 --- a/addons/mass_mailing/tests/common.py +++ b/addons/mass_mailing/tests/common.py @@ -214,6 +214,7 @@ class MassMailCase(MailCase, MockLinkTracker): 'bounced_msg_ids': [trace.message_id], }) self.env['mail.thread']._routing_handle_bounce(False, parsed_bounce_values) + return trace def gateway_mail_click(self, mailing, record, click_label): """ Simulate a click on a sent email. @@ -245,6 +246,22 @@ class MassMailCase(MailCase, MockLinkTracker): break else: raise AssertionError('url %s not found in mailing %s for record %s' % (click_label, mailing, record)) + return trace + + def gateway_mail_open(self, mailing, record): + """ Simulate opening an email through blank.gif icon access. As we + don't want to use the whole Http layer just for that we will just + call 'set_opened()' on trace, until having a better option. + + :param mailing: a ``mailing.mailing`` record on which we find a trace + to open; + :param record: record which should open; + """ + trace = mailing.mailing_trace_ids.filtered( + lambda t: t.model == record._name and t.res_id == record.id + ) + trace.set_opened() + return trace @classmethod def _create_bounce_trace(cls, mailing, records, dt=None):