diff options
Diffstat (limited to 'addons/test_mail/tests/test_mail_message.py')
| -rw-r--r-- | addons/test_mail/tests/test_mail_message.py | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/addons/test_mail/tests/test_mail_message.py b/addons/test_mail/tests/test_mail_message.py index 4f777ff8b7e..07116885592 100644 --- a/addons/test_mail/tests/test_mail_message.py +++ b/addons/test_mail/tests/test_mail_message.py @@ -22,7 +22,7 @@ class TestMessageValues(common.BaseFunctionalTest, common.MockEmails): 'alias_contact': 'followers', }) - cls.Message = cls.env['mail.message'].sudo(cls.user_employee) + cls.Message = cls.env['mail.message'].with_user(cls.user_employee) def test_mail_message_values_basic(self): self.env['ir.config_parameter'].search([('key', '=', 'mail.catchall.domain')]).unlink() @@ -121,7 +121,7 @@ class TestMessageValues(common.BaseFunctionalTest, common.MockEmails): self.assertNotIn('-%d-' % self.alias_record.id, msg.message_id.split('@')[0]) def test_mail_message_base64_image(self): - msg = self.env['mail.message'].sudo(self.user_employee).create({ + msg = self.env['mail.message'].with_user(self.user_employee).create({ 'body': 'taratata <img src="data:image/png;base64,iV/+OkI=" width="2"> <img src="data:image/png;base64,iV/+OkI=" width="2">', }) self.assertEqual(len(msg.attachment_ids), 1) @@ -182,22 +182,22 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): msg6 = self.env['mail.message'].create({ 'subject': '_ZTest', 'body': 'A Birds', 'subtype_id': self.ref('mail.mt_comment'), 'model': 'mail.channel', 'res_id': self.group_private.id}) - msg7 = self.env['mail.message'].sudo(self.user_employee).create({ + msg7 = self.env['mail.message'].with_user(self.user_employee).create({ 'subject': '_ZTest', 'body': 'B', 'subtype_id': self.ref('mail.mt_comment')}) - msg8 = self.env['mail.message'].sudo(self.user_employee).create({ + msg8 = self.env['mail.message'].with_user(self.user_employee).create({ 'subject': '_ZTest', 'body': 'B+E', 'subtype_id': self.ref('mail.mt_comment'), 'partner_ids': [(6, 0, [self.user_employee.partner_id.id])]}) # Test: Public: 2 messages (recipient) - messages = self.env['mail.message'].sudo(self.user_public).search([('subject', 'like', '_ZTest')]) + messages = self.env['mail.message'].with_user(self.user_public).search([('subject', 'like', '_ZTest')]) self.assertEqual(messages, msg2 | msg4) # Test: Employee: 3 messages on Pigs Raoul can read (employee can read group with default values) - messages = self.env['mail.message'].sudo(self.user_employee).search([('subject', 'like', '_ZTest'), ('body', 'ilike', 'A')]) + messages = self.env['mail.message'].with_user(self.user_employee).search([('subject', 'like', '_ZTest'), ('body', 'ilike', 'A')]) self.assertEqual(messages, msg3 | msg4 | msg5) # Test: Raoul: 3 messages on Pigs Raoul can read (employee can read group with default values), 0 on Birds (private group) + 2 messages as author - messages = self.env['mail.message'].sudo(self.user_employee).search([('subject', 'like', '_ZTest')]) + messages = self.env['mail.message'].with_user(self.user_employee).search([('subject', 'like', '_ZTest')]) self.assertEqual(messages, msg3 | msg4 | msg5 | msg7 | msg8) # Test: Admin: all messages @@ -205,12 +205,12 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): self.assertEqual(messages, msg1 | msg2 | msg3 | msg4 | msg5 | msg6 | msg7 | msg8) # Test: Portal: 0 (no access to groups, not recipient) - messages = self.env['mail.message'].sudo(self.user_portal).search([('subject', 'like', '_ZTest')]) + messages = self.env['mail.message'].with_user(self.user_portal).search([('subject', 'like', '_ZTest')]) self.assertFalse(messages) # Test: Portal: 2 messages (public group with a subtype) self.group_pigs.write({'public': 'public'}) - messages = self.env['mail.message'].sudo(self.user_portal).search([('subject', 'like', '_ZTest')]) + messages = self.env['mail.message'].with_user(self.user_portal).search([('subject', 'like', '_ZTest')]) self.assertEqual(messages, msg4 | msg5) # -------------------------------------------------- @@ -223,16 +223,16 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): # which still generate exception in except_orm.So we need to change all # except_orm to warning in mail module.) with self.assertRaises(except_orm): - self.message.sudo(self.user_employee).read() + self.message.with_user(self.user_employee).read() @mute_logger('odoo.models') def test_mail_message_access_read_crash_portal(self): with self.assertRaises(except_orm): - self.message.sudo(self.user_portal).read(['body', 'message_type', 'subtype_id']) + self.message.with_user(self.user_portal).read(['body', 'message_type', 'subtype_id']) def test_mail_message_access_read_ok_portal(self): self.message.write({'subtype_id': self.ref('mail.mt_comment'), 'res_id': self.group_public.id}) - self.message.sudo(self.user_portal).read(['body', 'message_type', 'subtype_id']) + self.message.with_user(self.user_portal).read(['body', 'message_type', 'subtype_id']) def test_mail_message_access_read_notification(self): attachment = self.env['ir.attachment'].create({ @@ -241,24 +241,24 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): # attach the attachment to the message self.message.write({'attachment_ids': [(4, attachment.id)]}) self.message.write({'partner_ids': [(4, self.user_employee.partner_id.id)]}) - self.message.sudo(self.user_employee).read() + self.message.with_user(self.user_employee).read() # Test: Bert has access to attachment, ok because he can read message - attachment.sudo(self.user_employee).read(['name', 'datas']) + attachment.with_user(self.user_employee).read(['name', 'datas']) def test_mail_message_access_read_author(self): self.message.write({'author_id': self.user_employee.partner_id.id}) - self.message.sudo(self.user_employee).read() + self.message.with_user(self.user_employee).read() def test_mail_message_access_read_doc(self): self.message.write({'model': 'mail.channel', 'res_id': self.group_public.id}) # Test: Bert reads the message, ok because linked to a doc he is allowed to read - self.message.sudo(self.user_employee).read() + self.message.with_user(self.user_employee).read() def test_mail_message_access_read_crash_moderation(self): # with self.assertRaises(AccessError): self.message.write({'model': 'mail.channel', 'res_id': self.group_public.id, 'moderation_status': 'pending_moderation'}) # Test: Bert reads the message, ok because linked to a doc he is allowed to read - self.message.sudo(self.user_employee).read() + self.message.with_user(self.user_employee).read() # -------------------------------------------------- # CREATE @@ -268,22 +268,22 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): def test_mail_message_access_create_crash_public(self): # Do: Bert creates a message on Pigs -> ko, no creation rights with self.assertRaises(AccessError): - self.env['mail.message'].sudo(self.user_public).create({'model': 'mail.channel', 'res_id': self.group_pigs.id, 'body': 'Test'}) + self.env['mail.message'].with_user(self.user_public).create({'model': 'mail.channel', 'res_id': self.group_pigs.id, 'body': 'Test'}) # Do: Bert create a message on Jobs -> ko, no creation rights with self.assertRaises(AccessError): - self.env['mail.message'].sudo(self.user_public).create({'model': 'mail.channel', 'res_id': self.group_public.id, 'body': 'Test'}) + self.env['mail.message'].with_user(self.user_public).create({'model': 'mail.channel', 'res_id': self.group_public.id, 'body': 'Test'}) @mute_logger('odoo.models') def test_mail_message_access_create_crash(self): # Do: Bert create a private message -> ko, no creation rights with self.assertRaises(except_orm): - self.env['mail.message'].sudo(self.user_employee).create({'model': 'mail.channel', 'res_id': self.group_private.id, 'body': 'Test'}) + self.env['mail.message'].with_user(self.user_employee).create({'model': 'mail.channel', 'res_id': self.group_private.id, 'body': 'Test'}) @mute_logger('odoo.models') def test_mail_message_access_create_doc(self): # TODO Change the except_orm to Warning - Message = self.env['mail.message'].sudo(self.user_employee) + Message = self.env['mail.message'].with_user(self.user_employee) # Do: Raoul creates a message on Jobs -> ok, write access to the related document Message.create({'model': 'mail.channel', 'res_id': self.group_public.id, 'body': 'Test'}) # Do: Raoul creates a message on Priv -> ko, no write access to the related document @@ -291,11 +291,11 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): Message.create({'model': 'mail.channel', 'res_id': self.group_private.id, 'body': 'Test'}) def test_mail_message_access_create_private(self): - self.env['mail.message'].sudo(self.user_employee).create({'body': 'Test'}) + self.env['mail.message'].with_user(self.user_employee).create({'body': 'Test'}) def test_mail_message_access_create_reply(self): self.message.write({'partner_ids': [(4, self.user_employee.partner_id.id)]}) - self.env['mail.message'].sudo(self.user_employee).create({'model': 'mail.channel', 'res_id': self.group_private.id, 'body': 'Test', 'parent_id': self.message.id}) + self.env['mail.message'].with_user(self.user_employee).create({'model': 'mail.channel', 'res_id': self.group_private.id, 'body': 'Test', 'parent_id': self.message.id}) # -------------------------------------------------- # WRITE @@ -310,17 +310,17 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): 'moderator_ids': [(4, self.user_employee.id)], }) self.message.write({'model': 'mail.channel', 'res_id': self.group_public.id, 'moderation_status': 'pending_moderation'}) - self.message.sudo(self.user_employee).write({'moderation_status': 'accepted'}) + self.message.with_user(self.user_employee).write({'moderation_status': 'accepted'}) def test_mail_message_access_write_crash_moderation(self): self.message.write({'model': 'mail.channel', 'res_id': self.group_public.id, 'moderation_status': 'pending_moderation'}) with self.assertRaises(AccessError): - self.message.sudo(self.user_employee).write({'moderation_status': 'accepted'}) + self.message.with_user(self.user_employee).write({'moderation_status': 'accepted'}) @mute_logger('openerp.addons.mail.models.mail_mail') def test_mark_all_as_read(self): self.user_employee.notification_type = 'inbox' - emp_partner = self.user_employee.partner_id.sudo(self.user_employee.id) + emp_partner = self.user_employee.partner_id.with_user(self.user_employee) group_private = self.env['mail.channel'].with_context({ 'mail_create_nolog': True, @@ -360,7 +360,7 @@ class TestMessageAccess(common.BaseFunctionalTest, common.MockEmails): @mute_logger('openerp.addons.mail.models.mail_mail') def test_mark_all_as_read_share(self): self.user_portal.notification_type = 'inbox' - portal_partner = self.user_portal.partner_id.sudo(self.user_portal.id) + portal_partner = self.user_portal.partner_id.with_user(self.user_portal) # mark all as read clear needactions self.group_pigs.message_post(body='Test', message_type='comment', subtype='mail.mt_comment', partner_ids=[portal_partner.id]) @@ -402,7 +402,7 @@ class TestMessageModeration(common.Moderation): # A pending moderation message needs to have field channel_ids empty. Moderators # need to be able to notify a pending moderation message (in a channel they moderate). self.assertFalse(self.msg_admin_pending_c1.channel_ids) - self.msg_admin_pending_c1.sudo(self.user_employee)._moderate('accept') + self.msg_admin_pending_c1.with_user(self.user_employee)._moderate('accept') self.assertEqual(self.msg_admin_pending_c1.channel_ids, self.channel_1) self.assertEqual(self.msg_admin_pending_c1.moderation_status, 'accepted') self.assertEqual(self.msg_admin_pending_c1_2.moderation_status, 'pending_moderation') @@ -415,7 +415,7 @@ class TestMessageModeration(common.Moderation): # need to be able to notify a pending moderation message (in a channel they moderate). self.assertFalse(self.msg_admin_pending_c1.channel_ids) self.assertFalse(self.msg_admin_pending_c1_2.channel_ids) - self.msg_admin_pending_c1.sudo(self.user_employee)._moderate('allow') + self.msg_admin_pending_c1.with_user(self.user_employee)._moderate('allow') self.assertEqual(self.msg_admin_pending_c1.channel_ids, self.channel_1) self.assertEqual(self.msg_admin_pending_c1_2.channel_ids, self.channel_1) self.assertEqual(self.msg_admin_pending_c1.moderation_status, 'accepted') @@ -427,14 +427,14 @@ class TestMessageModeration(common.Moderation): @mute_logger('odoo.models.unlink') def test_moderate_reject(self): self._init_mock_build_email() - (self.msg_admin_pending_c1 | self.msg_emp2_pending_c1).sudo(self.user_employee)._moderate_send_reject_email('Title', 'Message to author') + (self.msg_admin_pending_c1 | self.msg_emp2_pending_c1).with_user(self.user_employee)._moderate_send_reject_email('Title', 'Message to author') self.env['mail.mail'].process_email_queue() self.assertEmails(self.partner_employee, self.partner_employee_2 | self.partner_admin, subject='Title', body_content='Message to author') def test_moderate_discard(self): self._clear_bus() id1, id2 = self.msg_admin_pending_c1.id, self.msg_emp2_pending_c1.id # save ids because unlink will discard them - (self.msg_admin_pending_c1 | self.msg_emp2_pending_c1).sudo(self.user_employee)._moderate_discard() + (self.msg_admin_pending_c1 | self.msg_emp2_pending_c1).with_user(self.user_employee)._moderate_discard() self.assertBusNotification( [(self.cr.dbname, 'res.partner', self.partner_admin.id), |
