oca-mrp/odoo-bringout-oca-event-event_mail/event_mail/tests/test_event_mail.py
2025-08-29 15:43:05 +02:00

110 lines
3.9 KiB
Python

# Copyright 2017 Tecnativa - Sergio Teruel <sergio.teruel@tecnativa.com>
# Copyright 2020 Studio73 - Pablo Fuentes <pablo@studio73.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class EventMailCase(TransactionCase):
@classmethod
def setUpClass(cls):
"""Add some defaults to let the test run without an accounts chart."""
super().setUpClass()
cls.template1 = cls.env["event.mail.template"].create(
{"name": "Template test 01"}
)
event_reminder = cls.env.ref("event.event_reminder")
cls.template2 = cls.env["event.mail.template"].create(
{
"name": "Template test 01",
"scheduler_template_ids": [
(
0,
0,
{
"interval_nbr": 15,
"interval_unit": "days",
"interval_type": "before_event",
"template_ref": f"mail.template, {event_reminder.id}",
},
)
],
}
)
def test_event_template_config(self):
# Store default template in event settings
event_config = (
self.env["res.config.settings"]
.sudo()
.create({"event_mail_template_id": self.template1.id})
)
event_config.execute()
config_template_id = self.env.user.company_id.event_mail_template_id
self.assertTrue(
config_template_id, "Event Mail: Template store in default values"
)
# Create an event
vals = {
"name": "Event test",
"date_begin": "2017-05-01",
"date_end": "2017-06-01",
"auto_confirm": False,
"event_mail_template_id": self.template1.id,
}
event = self.env["event.event"].create(vals)
self.assertTrue(
event.event_mail_ids, "Event Mail: mails scheduler created for this event"
)
# Change template in event
event.event_mail_template_id = self.template2
self.assertEqual(
len(event.event_mail_ids), 1, "Event Mail: mails scheduler only one"
)
def test_event_template_no_config(self):
# Store default template in event settings
event_config = (
self.env["res.config.settings"]
.sudo()
.create({"event_mail_template_id": False})
)
event_config.execute()
config_template_id = self.env.user.company_id.event_mail_template_id
self.assertFalse(
self.env["event.mail.template"].browse(config_template_id).exists(),
"Event Mail: Template are not stored as default values",
)
# Create an event
vals = {
"name": "Event test",
"date_begin": "2017-05-01",
"date_end": "2017-06-01",
"auto_confirm": False,
}
event = self.env["event.event"].create(vals)
self.assertEqual(
len(event.event_mail_ids),
3,
"Event Mail: mails scheduler no created for this event",
)
def test_company_event_type(self):
event_config = (
self.env["res.config.settings"]
.sudo()
.create({"event_mail_template_id": self.template2.id})
)
event_config.execute()
event_type = self.env["event.type"].create({"name": "Physical"})
self.assertTrue(
event_type.event_type_mail_ids.exists(),
"Must be 'Mail Schedule'",
)
self.assertEqual(
len(event_type.event_type_mail_ids),
len(self.env.company.event_mail_template_id.scheduler_template_ids),
"Must be same number of 'Mail Schedule' as in company default template",
)