social/mail_template_substitute/tests/test_mail_template_substitu...

75 lines
2.6 KiB
Python

# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class TestMailTemplateSubstitute(TransactionCase):
def setUp(self):
super(TestMailTemplateSubstitute, self).setUp()
self.smt2 = self.env['mail.template'].create(
{
'name': 'substitute_template_2',
'model_id': self.env.ref('base.model_res_partner').id,
}
)
self.smt1 = self.env['mail.template'].create(
{
'name': 'substitute_template_1',
'model_id': self.env.ref('base.model_res_partner').id,
'mail_template_substitution_rule_ids': [
(
0,
0,
{
'substitution_mail_template_id': self.smt2.id,
'domain': "[('id', '=', False)]",
},
)
],
}
)
self.mt = self.env['mail.template'].create(
{
'name': 'base_template',
'model_id': self.env.ref('base.model_res_partner').id,
'mail_template_substitution_rule_ids': [
(0, 0, {'substitution_mail_template_id': self.smt1.id})
],
}
)
self.mail_compose = self.env['mail.compose.message'].create(
{'template_id': self.mt.id, 'composition_mode': 'mass_mail'}
)
self.partners = self.env['res.partner'].search([])
def test_get_email_template(self):
self.assertEqual(
self.mt._get_substitution_template(
self.env.ref('base.model_res_partner'), self.partners.ids
),
self.smt1,
)
self.assertEqual(
self.mt.get_email_template(self.partners.ids).get(
self.partners.ids[0]
),
self.smt1,
)
def test_get_substitution_template(self):
self.assertEqual(
self.mail_compose.with_context(
active_ids=self.partners.ids
)._get_substitution_template('mass_mail', self.mt, None),
self.smt1,
)
def test_onchange_template_id_wrapper(self):
self.assertEqual(self.mail_compose.template_id, self.mt)
self.smt1.mail_template_substitution_rule_ids.domain = '[]'
self.mail_compose.with_context(
active_ids=self.partners.ids
).onchange_template_id_wrapper()
self.assertEqual(self.mail_compose.template_id, self.smt2)