summaryrefslogtreecommitdiff
path: root/addons/test_mail
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2020-08-26 12:45:33 +0000
committerThibault Delavallée <tde@odoo.com>2020-08-28 12:41:34 +0000
commitf45d7ace687911f4090c081bdc0e8127c382bd64 (patch)
tree6e354e2dba0b026b814bc3b4e5c3571a75c1ee6b /addons/test_mail
parent1c862bb558cbdf67a87987f9a539e3f3248c588f (diff)
[IMP] test_mail: add some followers test about active flag
There is no test ensuring standard message_subscribe API does not subscribe inactive partners. As this is part of this method purpose, let us add a test to avoid any regression. LINKS Task ID-2326281 PR odoo/odoo#56560
Diffstat (limited to 'addons/test_mail')
-rw-r--r--addons/test_mail/tests/test_mail_followers.py38
1 files changed, 33 insertions, 5 deletions
diff --git a/addons/test_mail/tests/test_mail_followers.py b/addons/test_mail/tests/test_mail_followers.py
index 7669394e875..5bac6d00529 100644
--- a/addons/test_mail/tests/test_mail_followers.py
+++ b/addons/test_mail/tests/test_mail_followers.py
@@ -3,7 +3,7 @@
from psycopg2 import IntegrityError
-from odoo.tests import tagged
+from odoo.tests import tagged, users
from odoo.addons.test_mail.tests.common import TestMailCommon
from odoo.tools.misc import mute_logger
@@ -17,13 +17,20 @@ class BaseFollowersTest(TestMailCommon):
cls._create_portal_user()
cls._create_channel_listener()
+ # allow employee to update partners
+ cls.user_employee.write({'groups_id': [(4, cls.env.ref('base.group_partner_manager').id)]})
+
Subtype = cls.env['mail.message.subtype']
- cls.mt_mg_def = Subtype.create({'name': 'mt_mg_def', 'default': True, 'res_model': 'mail.test.simple'})
- cls.mt_cl_def = Subtype.create({'name': 'mt_cl_def', 'default': True, 'res_model': 'mail.test.container'})
+ # global
cls.mt_al_def = Subtype.create({'name': 'mt_al_def', 'default': True, 'res_model': False})
- cls.mt_mg_nodef = Subtype.create({'name': 'mt_mg_nodef', 'default': False, 'res_model': 'mail.test.simple'})
cls.mt_al_nodef = Subtype.create({'name': 'mt_al_nodef', 'default': False, 'res_model': False})
- cls.mt_mg_def_int = cls.env['mail.message.subtype'].create({'name': 'mt_mg_def', 'default': True, 'res_model': 'mail.test.simple', 'internal': True})
+ # mail.test.simple
+ cls.mt_mg_def = Subtype.create({'name': 'mt_mg_def', 'default': True, 'res_model': 'mail.test.simple'})
+ cls.mt_mg_nodef = Subtype.create({'name': 'mt_mg_nodef', 'default': False, 'res_model': 'mail.test.simple'})
+ cls.mt_mg_def_int = Subtype.create({'name': 'mt_mg_def', 'default': True, 'res_model': 'mail.test.simple', 'internal': True})
+ # mail.test.container
+ cls.mt_cl_def = Subtype.create({'name': 'mt_cl_def', 'default': True, 'res_model': 'mail.test.container'})
+
cls.default_group_subtypes = Subtype.search([('default', '=', True), '|', ('res_model', '=', 'mail.test.simple'), ('res_model', '=', False)])
cls.default_group_subtypes_portal = Subtype.search([('internal', '=', False), ('default', '=', True), '|', ('res_model', '=', 'mail.test.simple'), ('res_model', '=', False)])
@@ -127,6 +134,27 @@ class BaseFollowersTest(TestMailCommon):
channel_ids=[self.channel_listen.id]
)
+ @users('employee')
+ def test_followers_inactive(self):
+ """ Test standard API does not subscribe inactive partners """
+ customer = self.env['res.partner'].create({
+ 'name': 'Valid Lelitre',
+ 'email': 'valid.lelitre@agrolait.com',
+ 'country_id': self.env.ref('base.be').id,
+ 'mobile': '0456001122',
+ 'active': False,
+ })
+ document = self.env['mail.test.simple'].browse(self.test_record.id)
+ self.assertEqual(document.message_partner_ids, self.env['res.partner'])
+ document.message_subscribe(partner_ids=(self.partner_portal | customer).ids)
+ self.assertEqual(document.message_partner_ids, self.partner_portal)
+ self.assertEqual(document.message_follower_ids.partner_id, self.partner_portal)
+
+ # works through low-level API
+ document._message_subscribe(partner_ids=(self.partner_portal | customer).ids)
+ self.assertEqual(document.message_partner_ids, self.partner_portal, 'No active test: customer not visible')
+ self.assertEqual(document.message_follower_ids.partner_id, self.partner_portal | customer)
+
class AdvancedFollowersTest(TestMailCommon):
@classmethod