summaryrefslogtreecommitdiff
path: root/addons/test_mail
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2020-08-26 12:45:54 +0000
committerThibault Delavallée <tde@odoo.com>2020-08-28 12:42:32 +0000
commit42910ce25f06a31af3cfbc8d5d41e443ee754c34 (patch)
treec06be39f88bf700959ceb2e72bf8098a408cde0f /addons/test_mail
parentf45d7ace687911f4090c081bdc0e8127c382bd64 (diff)
[IMP] mail: do not auto-subscribe inactive partners
Tested flows * posting a message through an inactive partner (like automated actions posting a message on behalf of an inactive partner); * automatic subscription based on parent record (like an archived user and partner following a project that should not be added as follower of sub tasks); * automatic subscription based on responsible field: this is already fixed as user has to be active to receive a notification and be added in followers; LINKS Task ID-2326281 PR odoo/odoo#56560
Diffstat (limited to 'addons/test_mail')
-rw-r--r--addons/test_mail/tests/test_mail_followers.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/addons/test_mail/tests/test_mail_followers.py b/addons/test_mail/tests/test_mail_followers.py
index 5bac6d00529..fe8c5f38d96 100644
--- a/addons/test_mail/tests/test_mail_followers.py
+++ b/addons/test_mail/tests/test_mail_followers.py
@@ -187,6 +187,22 @@ class AdvancedFollowersTest(TestMailCommon):
""" Creator of records are automatically added as followers """
self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id)
+ def test_auto_subscribe_inactive(self):
+ """ Test inactive are not added as followers in automated subscription """
+ self.test_track.user_id = False
+ self.user_admin.active = False
+ self.user_admin.flush()
+ self.partner_admin.active = False
+ self.partner_admin.flush()
+
+ self.test_track.with_user(self.user_admin).message_post(body='Coucou hibou', message_type='comment')
+ self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id)
+ self.assertEqual(self.test_track.message_follower_ids.partner_id, self.user_employee.partner_id)
+
+ self.test_track.write({'user_id': self.user_admin.id})
+ self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id)
+ self.assertEqual(self.test_track.message_follower_ids.partner_id, self.user_employee.partner_id)
+
def test_auto_subscribe_post(self):
""" People posting a message are automatically added as followers """
self.test_track.with_user(self.user_admin).message_post(body='Coucou hibou', message_type='comment')
@@ -221,13 +237,20 @@ class AdvancedFollowersTest(TestMailCommon):
automatically create subscription with matching subtypes
* subscribing to a sub-record as creator applies default subtype values
* portal user should not have access to internal subtypes
+
+ Inactive partners should not be auto subscribed.
"""
container = self.env['mail.test.container'].with_context(self._test_context).create({
'name': 'Project-Like',
})
- container.message_subscribe(partner_ids=[self.partner_portal.id])
- self.assertEqual(container.message_partner_ids, self.partner_portal)
+ container.message_subscribe(partner_ids=(self.partner_portal | self.partner_admin).ids)
+ self.assertEqual(container.message_partner_ids, self.partner_portal | self.partner_admin)
+
+ self.user_admin.active = False
+ self.user_admin.flush()
+ self.partner_admin.active = False
+ self.partner_admin.flush()
sub1 = self.env['mail.test.track'].with_user(self.user_employee).create({
'name': 'Task-Like Test',
@@ -238,6 +261,7 @@ class AdvancedFollowersTest(TestMailCommon):
external_defaults = all_defaults.filtered(lambda subtype: not subtype.internal)
self.assertEqual(sub1.message_partner_ids, self.partner_portal | self.user_employee.partner_id)
+ self.assertEqual(sub1.message_follower_ids.partner_id, self.partner_portal | self.user_employee.partner_id)
self.assertEqual(
sub1.message_follower_ids.filtered(lambda fol: fol.partner_id == self.partner_portal).subtype_ids,
external_defaults | self.sub_umb1)