oca-ocb-core/odoo-bringout-oca-ocb-mail/mail/tests/test_res_role.py
Ernad Husremovic 2d3ee4855a 19.0 vanilla
2026-03-09 09:30:27 +01:00

60 lines
2.3 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import Command
from odoo.addons.mail.tests.common import MailCommon, mail_new_test_user
from odoo.tests.common import HttpCase, tagged
@tagged("-at_install", "post_install")
class TestResRole(MailCommon, HttpCase):
def test_post_mention_role(self):
"""Test mention with role"""
contact = self.env["res.partner"].create({"name": "A contact"})
role_discuss = self.env["res.role"].create({"name": "rd-Discuss"})
role_js = self.env["res.role"].create({"name": "rd-JS"})
user_discuss = mail_new_test_user(
self.env,
login="user_d",
name="Discuss User",
notification_type="inbox",
role_ids=[Command.link(role_discuss.id)],
)
user_js = mail_new_test_user(
self.env,
login="user_js",
name="JS User",
notification_type="inbox",
role_ids=[Command.link(role_js.id)],
)
user_discuss_js = mail_new_test_user(
self.env,
login="user_djs",
name="Discuss JS User",
notification_type="inbox",
role_ids=[Command.link(role_discuss.id), Command.link(role_js.id)],
)
self.authenticate("employee", "employee")
for [roles, expected_users] in [
(self.env["res.role"], self.env["res.users"]),
(role_discuss, user_discuss + user_discuss_js),
(role_js, user_js + user_discuss_js),
(role_discuss + role_js, user_discuss + user_js + user_discuss_js),
]:
data = self.make_jsonrpc_request(
"/mail/message/post",
{
"thread_model": "res.partner",
"thread_id": contact.id,
"post_data": {
"body": "irrelevant",
"message_type": "comment",
"role_ids": roles.ids,
"subtype_xmlid": "mail.mt_note",
},
},
)
message = next(filter(lambda m: m["id"] == data["message_id"], data["store_data"]["mail.message"]))
self.assertEqual(
message["partner_ids"],
expected_users.partner_id.ids
)