changeset 2064:c9adf2a4929a beta

added tests for users_group and issue #373
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 28 Feb 2012 19:59:16 +0200
parents d9ba58526712
children 9ab21c5ddb84 de372c3a329e
files rhodecode/tests/functional/test_admin_users_groups.py rhodecode/tests/test_models.py
diffstat 2 files changed, 54 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/tests/functional/test_admin_users_groups.py	Tue Feb 28 19:18:35 2012 +0200
+++ b/rhodecode/tests/functional/test_admin_users_groups.py	Tue Feb 28 19:59:16 2012 +0200
@@ -1,8 +1,9 @@
 from rhodecode.tests import *
-from rhodecode.model.db import UsersGroup
+from rhodecode.model.db import UsersGroup, UsersGroupToPerm, Permission
 
 TEST_USERS_GROUP = 'admins_test'
 
+
 class TestAdminUsersGroupsController(TestController):
 
     def test_index(self):
@@ -16,7 +17,7 @@
         self.log_user()
         users_group_name = TEST_USERS_GROUP
         response = self.app.post(url('users_groups'),
-                                 {'users_group_name':users_group_name,
+                                 {'users_group_name': users_group_name,
                                   'active':True})
         response.follow()
 
@@ -47,7 +48,6 @@
         self.checkSessionFlash(response,
                                'created users group %s' % users_group_name)
 
-
         gr = self.Session.query(UsersGroup)\
                            .filter(UsersGroup.users_group_name ==
                                    users_group_name).one()
@@ -60,6 +60,53 @@
 
         self.assertEqual(gr, None)
 
+    def test_enable_repository_read_on_group(self):
+        self.log_user()
+        users_group_name = TEST_USERS_GROUP + 'another2'
+        response = self.app.post(url('users_groups'),
+                                 {'users_group_name': users_group_name,
+                                  'active':True})
+        response.follow()
+
+        ug = UsersGroup.get_by_group_name(users_group_name)
+        self.checkSessionFlash(response,
+                               'created users group %s' % users_group_name)
+
+        response = self.app.put(url('users_group_perm', id=ug.users_group_id),
+                                 {'create_repo_perm': True})
+
+        response.follow()
+        ug = UsersGroup.get_by_group_name(users_group_name)
+        p = Permission.get_by_key('hg.create.repository')
+        # check if user has this perm
+        perms = UsersGroupToPerm.query()\
+            .filter(UsersGroupToPerm.users_group == ug).all()
+        perms = [[x.__dict__['users_group_id'],
+                  x.__dict__['permission_id'],] for x in perms]
+        self.assertEqual(
+            perms,
+            [[ug.users_group_id, p.permission_id]]
+        )
+
+        # DELETE !
+        ug = UsersGroup.get_by_group_name(users_group_name)
+        ugid = ug.users_group_id
+        response = self.app.delete(url('users_group', id=ug.users_group_id))
+        response = response.follow()
+        gr = self.Session.query(UsersGroup)\
+                           .filter(UsersGroup.users_group_name ==
+                                   users_group_name).scalar()
+
+        self.assertEqual(gr, None)
+        p = Permission.get_by_key('hg.create.repository')
+        perms = UsersGroupToPerm.query()\
+            .filter(UsersGroupToPerm.users_group_id == ugid).all()
+        perms = [[x.__dict__['users_group_id'],
+                  x.__dict__['permission_id'],] for x in perms]
+        self.assertEqual(
+            perms,
+            []
+        )
 
     def test_delete_browser_fakeout(self):
         response = self.app.post(url('users_group', id=1),
--- a/rhodecode/tests/test_models.py	Tue Feb 28 19:18:35 2012 +0200
+++ b/rhodecode/tests/test_models.py	Tue Feb 28 19:59:16 2012 +0200
@@ -161,19 +161,19 @@
         Session.commit()
         g2 = _make_group('t22',parent_id=g1.group_id)
         Session.commit()
-        
+
         self.assertEqual(g2.full_path,'t11/t22')
         self.assertTrue(self.__check_path('t11', 't22'))
-        
+
         g2 = self.__update_group(g2.group_id, 'g22', parent_id=None)
         Session.commit()
-        
+
         self.assertEqual(g2.group_name,'g22')
         # we moved out group from t1 to '' so it's full path should be 'g2'
         self.assertEqual(g2.full_path,'g22')
         self.assertFalse(self.__check_path('t11', 't22'))
         self.assertTrue(self.__check_path('g22'))
-        
+
 
 class TestUser(unittest.TestCase):
     def __init__(self, methodName='runTest'):