summaryrefslogtreecommitdiff
path: root/addons/test_mail/tests/test_mail_channel.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/test_mail/tests/test_mail_channel.py')
-rw-r--r--addons/test_mail/tests/test_mail_channel.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/addons/test_mail/tests/test_mail_channel.py b/addons/test_mail/tests/test_mail_channel.py
index 8bbd60c5a9d..e54d90ff8b7 100644
--- a/addons/test_mail/tests/test_mail_channel.py
+++ b/addons/test_mail/tests/test_mail_channel.py
@@ -191,6 +191,41 @@ class TestChannelFeatures(TestMailCommon):
self.test_channel.message_post(body="Test", message_type='comment', subtype_xmlid='mail.mt_comment')
self.assertSentEmail(self.test_channel.env.user.partner_id, [self.test_partner])
+ @mute_logger('odoo.models.unlink')
+ def test_channel_auto_unsubscribe_archived_or_deleted_users(self):
+ """Archiving / deleting a user should automatically unsubscribe related partner from private channels"""
+ test_channel_private = self.env['mail.channel'].with_context(self._test_context).create({
+ 'name': 'Winden caves',
+ 'description': 'Channel to travel through time',
+ 'public': 'private',
+ })
+ test_channel_group = self.env['mail.channel'].with_context(self._test_context).create({
+ 'name': 'Sic Mundus',
+ 'public': 'groups',
+ 'group_public_id': self.env.ref('base.group_user').id})
+
+ test_user = self.env['res.users'].create({
+ "login": "adam",
+ "name": "Jonas",
+ })
+ test_partner = test_user.partner_id
+
+ self._join_channel(self.test_channel, self.user_employee.partner_id | test_partner)
+ self._join_channel(test_channel_private, self.user_employee.partner_id | test_partner)
+ self._join_channel(test_channel_group, self.user_employee.partner_id | test_partner)
+
+ # Unsubscribe archived user from the private channels, but not from public channels
+ self.user_employee.active = False
+ self.assertEqual(test_channel_private.channel_partner_ids, test_partner)
+ self.assertEqual(test_channel_group.channel_partner_ids, test_partner)
+ self.assertEqual(self.test_channel.channel_partner_ids, self.user_employee.partner_id | test_partner)
+
+ # Unsubscribe deleted user from the private channels, but not from public channels
+ test_user.unlink()
+ self.assertEqual(test_channel_private.channel_partner_ids, self.env['res.partner'])
+ self.assertEqual(test_channel_group.channel_partner_ids, self.env['res.partner'])
+ self.assertEqual(self.test_channel.channel_partner_ids, self.user_employee.partner_id | test_partner)
+
@tagged('moderation')
class TestChannelModeration(TestMailCommon):