social/mail_parent_recipient/tests/test_mail_parent_recipient.py
Thierry Ducrest 2a3e8daaae Migrate mail_parent_recipient to 15.0
This module comes from a PR in v10 but has never been merged.
This is the related PR:

* https://github.com/OCA/social/pull/963
2022-11-08 11:17:52 +01:00

80 lines
3.0 KiB
Python

# Copyright 2018-2022 Camptocamp
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.addons.mail.tests.common import MailCommon
class TestMailTemplate(MailCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
cls.env["ir.config_parameter"].set_param("mail.use_parent_address", True)
cls.res_partner = cls.env["res.partner"]
cls.company_test = cls.res_partner.create(
{
"name": "company_name_test",
"email": "company.mail.test@company",
}
)
cls.partner_no_mail = cls.res_partner.create(
{
"name": "partner_1",
"parent_id": cls.company_test.id,
}
)
cls.partner_with_mail = cls.res_partner.create(
{
"name": "partner_2",
"email": "partner.2.mail.test@company",
"parent_id": cls.company_test.id,
}
)
cls.record = cls.env.ref("base.partner_demo")
cls.email_template = (
cls.env["mail.template"]
.with_context(test_parent_mail_recipient=True)
.create(
{
"model_id": cls.env["ir.model"]
.search([("model", "=", "mail.channel")], limit=1)
.id,
"name": "Pigs Template",
"subject": "${object.name}",
"body_html": "${object.description}",
"partner_to": "",
}
)
)
def _get_email_recipient_for(self, partner_to_send_ids):
self.email_template.partner_to = ",".join(
[str(partner_id) for partner_id in partner_to_send_ids]
)
values = self.email_template.generate_email(self.record.id, ["partner_to"])
return values["partner_ids"]
def test_mail_send_to_partner_no_mail(self):
"""Check recipient without email, comapny email is used."""
recipients = self._get_email_recipient_for(self.partner_no_mail.ids)
self.assertEqual(recipients, self.company_test.ids)
def test_mail_send_to_partner_with_mail(self):
"""Check recipient has email, nothing is changed."""
recipients = self._get_email_recipient_for(self.partner_with_mail.ids)
self.assertEqual(recipients, self.partner_with_mail.ids)
def test_mail_send_to_company_test(self):
"""Check company email is used."""
recipients = self._get_email_recipient_for(self.company_test.ids)
self.assertEqual(recipients, self.company_test.ids)
def test_mail_send_to_company_and_partner_no_mail(self):
"""Check a partner is not add twice in recipient list."""
recipients = self._get_email_recipient_for(
[self.partner_no_mail.id, self.company_test.id]
)
self.assertEqual(recipients, self.company_test.ids)