Show More
@@ -1,8 +1,9 | |||||
1 | from rhodecode.tests import * |
|
1 | from rhodecode.tests import * | |
2 | from rhodecode.model.db import UsersGroup |
|
2 | from rhodecode.model.db import UsersGroup, UsersGroupToPerm, Permission | |
3 |
|
3 | |||
4 | TEST_USERS_GROUP = 'admins_test' |
|
4 | TEST_USERS_GROUP = 'admins_test' | |
5 |
|
5 | |||
|
6 | ||||
6 | class TestAdminUsersGroupsController(TestController): |
|
7 | class TestAdminUsersGroupsController(TestController): | |
7 |
|
8 | |||
8 | def test_index(self): |
|
9 | def test_index(self): | |
@@ -16,7 +17,7 class TestAdminUsersGroupsController(Tes | |||||
16 | self.log_user() |
|
17 | self.log_user() | |
17 | users_group_name = TEST_USERS_GROUP |
|
18 | users_group_name = TEST_USERS_GROUP | |
18 | response = self.app.post(url('users_groups'), |
|
19 | response = self.app.post(url('users_groups'), | |
19 | {'users_group_name':users_group_name, |
|
20 | {'users_group_name': users_group_name, | |
20 | 'active':True}) |
|
21 | 'active':True}) | |
21 | response.follow() |
|
22 | response.follow() | |
22 |
|
23 | |||
@@ -47,7 +48,6 class TestAdminUsersGroupsController(Tes | |||||
47 | self.checkSessionFlash(response, |
|
48 | self.checkSessionFlash(response, | |
48 | 'created users group %s' % users_group_name) |
|
49 | 'created users group %s' % users_group_name) | |
49 |
|
50 | |||
50 |
|
||||
51 | gr = self.Session.query(UsersGroup)\ |
|
51 | gr = self.Session.query(UsersGroup)\ | |
52 | .filter(UsersGroup.users_group_name == |
|
52 | .filter(UsersGroup.users_group_name == | |
53 | users_group_name).one() |
|
53 | users_group_name).one() | |
@@ -60,6 +60,53 class TestAdminUsersGroupsController(Tes | |||||
60 |
|
60 | |||
61 | self.assertEqual(gr, None) |
|
61 | self.assertEqual(gr, None) | |
62 |
|
62 | |||
|
63 | def test_enable_repository_read_on_group(self): | |||
|
64 | self.log_user() | |||
|
65 | users_group_name = TEST_USERS_GROUP + 'another2' | |||
|
66 | response = self.app.post(url('users_groups'), | |||
|
67 | {'users_group_name': users_group_name, | |||
|
68 | 'active':True}) | |||
|
69 | response.follow() | |||
|
70 | ||||
|
71 | ug = UsersGroup.get_by_group_name(users_group_name) | |||
|
72 | self.checkSessionFlash(response, | |||
|
73 | 'created users group %s' % users_group_name) | |||
|
74 | ||||
|
75 | response = self.app.put(url('users_group_perm', id=ug.users_group_id), | |||
|
76 | {'create_repo_perm': True}) | |||
|
77 | ||||
|
78 | response.follow() | |||
|
79 | ug = UsersGroup.get_by_group_name(users_group_name) | |||
|
80 | p = Permission.get_by_key('hg.create.repository') | |||
|
81 | # check if user has this perm | |||
|
82 | perms = UsersGroupToPerm.query()\ | |||
|
83 | .filter(UsersGroupToPerm.users_group == ug).all() | |||
|
84 | perms = [[x.__dict__['users_group_id'], | |||
|
85 | x.__dict__['permission_id'],] for x in perms] | |||
|
86 | self.assertEqual( | |||
|
87 | perms, | |||
|
88 | [[ug.users_group_id, p.permission_id]] | |||
|
89 | ) | |||
|
90 | ||||
|
91 | # DELETE ! | |||
|
92 | ug = UsersGroup.get_by_group_name(users_group_name) | |||
|
93 | ugid = ug.users_group_id | |||
|
94 | response = self.app.delete(url('users_group', id=ug.users_group_id)) | |||
|
95 | response = response.follow() | |||
|
96 | gr = self.Session.query(UsersGroup)\ | |||
|
97 | .filter(UsersGroup.users_group_name == | |||
|
98 | users_group_name).scalar() | |||
|
99 | ||||
|
100 | self.assertEqual(gr, None) | |||
|
101 | p = Permission.get_by_key('hg.create.repository') | |||
|
102 | perms = UsersGroupToPerm.query()\ | |||
|
103 | .filter(UsersGroupToPerm.users_group_id == ugid).all() | |||
|
104 | perms = [[x.__dict__['users_group_id'], | |||
|
105 | x.__dict__['permission_id'],] for x in perms] | |||
|
106 | self.assertEqual( | |||
|
107 | perms, | |||
|
108 | [] | |||
|
109 | ) | |||
63 |
|
110 | |||
64 | def test_delete_browser_fakeout(self): |
|
111 | def test_delete_browser_fakeout(self): | |
65 | response = self.app.post(url('users_group', id=1), |
|
112 | response = self.app.post(url('users_group', id=1), |
@@ -161,19 +161,19 class TestReposGroups(unittest.TestCase) | |||||
161 | Session.commit() |
|
161 | Session.commit() | |
162 | g2 = _make_group('t22',parent_id=g1.group_id) |
|
162 | g2 = _make_group('t22',parent_id=g1.group_id) | |
163 | Session.commit() |
|
163 | Session.commit() | |
164 |
|
164 | |||
165 | self.assertEqual(g2.full_path,'t11/t22') |
|
165 | self.assertEqual(g2.full_path,'t11/t22') | |
166 | self.assertTrue(self.__check_path('t11', 't22')) |
|
166 | self.assertTrue(self.__check_path('t11', 't22')) | |
167 |
|
167 | |||
168 | g2 = self.__update_group(g2.group_id, 'g22', parent_id=None) |
|
168 | g2 = self.__update_group(g2.group_id, 'g22', parent_id=None) | |
169 | Session.commit() |
|
169 | Session.commit() | |
170 |
|
170 | |||
171 | self.assertEqual(g2.group_name,'g22') |
|
171 | self.assertEqual(g2.group_name,'g22') | |
172 | # we moved out group from t1 to '' so it's full path should be 'g2' |
|
172 | # we moved out group from t1 to '' so it's full path should be 'g2' | |
173 | self.assertEqual(g2.full_path,'g22') |
|
173 | self.assertEqual(g2.full_path,'g22') | |
174 | self.assertFalse(self.__check_path('t11', 't22')) |
|
174 | self.assertFalse(self.__check_path('t11', 't22')) | |
175 | self.assertTrue(self.__check_path('g22')) |
|
175 | self.assertTrue(self.__check_path('g22')) | |
176 |
|
176 | |||
177 |
|
177 | |||
178 | class TestUser(unittest.TestCase): |
|
178 | class TestUser(unittest.TestCase): | |
179 | def __init__(self, methodName='runTest'): |
|
179 | def __init__(self, methodName='runTest'): |
General Comments 0
You need to be logged in to leave comments.
Login now