This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 438459b6cd68f02b0c33def285899df7c5627be2
Author: Vrinda A <[email protected]>
AuthorDate: Fri Feb 25 17:12:53 2022 +0530

    [#8391] Unsubscribe from a project when a user is removed from Admin group 
- added a test case
---
 Allura/allura/tests/functional/test_admin.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/Allura/allura/tests/functional/test_admin.py 
b/Allura/allura/tests/functional/test_admin.py
index 8ab03d1..1dbe6d1 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -666,6 +666,30 @@ class TestProjectAdmin(TestController):
                 user_id=uid, project_id=p._id, app_config_id=ac._id)
             assert sub, 'New admin not subscribed to app %s' % ac
 
+    def test_admin_unsubscriptions(self):
+        """
+        When user is removed from admins group then user must be unsubscribed
+        from all the tools in the project
+        """
+        r = self.app.get('/admin/groups/')
+        admin_holder = r.html.find(
+            'table', {'id': 'usergroup_admin'}).findAll('tr')[1]
+        admin_id = admin_holder['data-group']
+        with audits('add user test-user to Admin'):
+            self.app.post('/admin/groups/add_user', params={
+                'role_id': admin_id,
+                'username': 'test-user'})
+        p_nbhd = M.Neighborhood.query.get(name='Projects')
+        p = M.Project.query.get(shortname='test', neighborhood_id=p_nbhd._id)
+        uid = M.User.by_username('test-user')._id
+        for ac in p.app_configs:
+            M.Mailbox.unsubscribe(
+                user_id=uid, project_id=p._id, app_config_id=ac._id
+            )
+            sub = M.Mailbox.subscribed(
+                user_id=uid, project_id=p._id, app_config_id=ac._id)
+        assert not sub, 'New admin not unsubscribed to app %s' % ac
+
     def test_new_user_subscriptions(self):
         """Newly added user must not be subscribed to all the tools in the 
project if he is not admin"""
         r = self.app.get('/admin/groups/')

Reply via email to