diff --git a/mail_tracking/tests/test_mail_tracking.py b/mail_tracking/tests/test_mail_tracking.py index ba9fefda1..62c22999b 100644 --- a/mail_tracking/tests/test_mail_tracking.py +++ b/mail_tracking/tests/test_mail_tracking.py @@ -152,7 +152,7 @@ class TestMailTracking(TransactionCase): self.assertEqual(tracking_email.error_type, "no_recipient") self.assertFalse(self.recipient.email_bounced) - def _check_partner_trackings(self, message): + def _check_partner_trackings_cc(self, message): message_dict = message.message_format()[0] self.assertEqual(len(message_dict["partner_trackings"]), 3) # mail cc @@ -182,13 +182,13 @@ class TestMailTracking(TransactionCase): # pylint: disable=C8107 message = self.recipient.with_user(sender_user).message_post( body="
This is a test message
", - cc="unnamed@test.com, sender@example.com", + cc="Dominique PinonThis is another test message
", } ) message._moderate_accept() recipients = self.recipient._message_get_suggested_recipients() - self.assertEqual(len(recipients[self.recipient.id][0]), 3) - self._check_partner_trackings(message) + self.assertEqual(len(recipients[self.recipient.id]), 3) + self._check_partner_trackings_cc(message) + + def _check_partner_trackings_to(self, message): + message_dict = message.message_format()[0] + self.assertEqual(len(message_dict["partner_trackings"]), 3) + # mail cc + foundPartner = False + foundNoPartner = False + for tracking in message_dict["partner_trackings"]: + if tracking["partner_id"] == self.sender.id: + foundPartner = True + elif tracking["recipient"] == "support+unnamed@test.com": + foundNoPartner = True + self.assertFalse(tracking["partner_id"]) + self.assertTrue(foundPartner) + self.assertTrue(foundNoPartner) + + def test_email_to(self): + sender_user = self.env["res.users"].create( + { + "name": "Sender User Test", + "partner_id": self.sender.id, + "login": "sender-test", + } + ) + # pylint: disable=C8107 + message = self.recipient.with_user(sender_user).message_post( + body="This is a test message
", + to="Dominique PinonThis is another test message
", + } + ) + message._moderate_accept() + recipients = self.recipient._message_get_suggested_recipients() + self.assertEqual(len(recipients[self.recipient.id]), 3) + self._check_partner_trackings_to(message) + # Catchall + Alias + self.env["ir.config_parameter"].set_param("mail.catchall.domain", "test.com") + self.env["mail.alias"].create( + { + "alias_model_id": self.env["ir.model"]._get("res.partner").id, + "alias_name": "support+unnamed", + } + ) + recipients = self.recipient._message_get_suggested_recipients() + self.assertEqual(len(recipients[self.recipient.id]), 2) + suggested_mails = {email[1] for email in recipients[self.recipient.id]} + self.assertNotIn("support+unnamed@test.com", suggested_mails) def test_failed_message(self): MailMessageObj = self.env["mail.message"]