bemade-addons/bemade_time_off_follower/tests/test_mail_thread.py
2025-05-29 21:35:47 -04:00

64 lines
2.1 KiB
Python

from odoo.tests import TransactionCase, Form, tagged
from datetime import datetime, timedelta
@tagged("-at_install", "post_install")
class TestMailThread(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
def test_alternate_recipient_is_notified(self):
empl_1, empl_2 = self.env["hr.employee"].create(
[
{"name": "Test 1"},
{"name": "Test 2"},
]
)
user_1, user_2 = self.env["res.users"].create(
[
{
"name": "Test 1",
"login": "test1",
"employee_ids": [(6, 0, [empl_1.id])],
"notification_type": "inbox",
},
{
"name": "Test 2",
"login": "test2",
"employee_ids": [(6, 0, [empl_2.id])],
"notification_type": "inbox",
},
]
)
leave = self.env["hr.leave"].create(
{
"employee_id": user_1.employee_id.id,
"request_date_from": datetime.now() - timedelta(days=1),
"request_date_to": datetime.now() + timedelta(days=1),
"holiday_type": "employee",
"holiday_status_id": self.env.ref(
"hr_holidays.holiday_status_unpaid"
).id,
"alternate_follower_id": user_2.id,
}
)
leave.action_approve()
if leave.state == "validate1":
leave.action_validate()
comment = self.env.ref("mail.mt_comment")
partner = empl_1.user_partner_id
partner.message_subscribe([partner.id], [comment.id])
body = f"@{user_1.name} Something something"
message_id = partner.message_post(
body=body,
message_type="comment",
subtype_id=comment.id,
)
notifications = self.env["mail.notification"].search(
[
["res_partner_id", "=", empl_2.user_partner_id.id],
]
)
self.assertEqual(len(notifications), 2)