test_admin_users_groups.py
224 lines
| 8.3 KiB
| text/x-python
|
PythonLexer
r1382 | from rhodecode.tests import * | |||
Mads Kiilerich
|
r3417 | from rhodecode.model.db import UserGroup, UserGroupToPerm, Permission | ||
r1382 | ||||
Mads Kiilerich
|
r3417 | TEST_USER_GROUP = 'admins_test' | ||
r1382 | ||||
r2064 | ||||
r1382 | class TestAdminUsersGroupsController(TestController): | |||
def test_index(self): | ||||
response = self.app.get(url('users_groups')) | ||||
# Test response... | ||||
def test_index_as_xml(self): | ||||
response = self.app.get(url('formatted_users_groups', format='xml')) | ||||
def test_create(self): | ||||
r1398 | self.log_user() | |||
Mads Kiilerich
|
r3417 | users_group_name = TEST_USER_GROUP | ||
r1382 | response = self.app.post(url('users_groups'), | |||
r2064 | {'users_group_name': users_group_name, | |||
r1382 | 'active':True}) | |||
response.follow() | ||||
self.checkSessionFlash(response, | ||||
Mads Kiilerich
|
r3565 | 'Created user group %s' % TEST_USER_GROUP) | ||
r1382 | ||||
def test_new(self): | ||||
response = self.app.get(url('new_users_group')) | ||||
def test_new_as_xml(self): | ||||
response = self.app.get(url('formatted_new_users_group', format='xml')) | ||||
def test_update(self): | ||||
response = self.app.put(url('users_group', id=1)) | ||||
def test_update_browser_fakeout(self): | ||||
r1436 | response = self.app.post(url('users_group', id=1), | |||
params=dict(_method='put')) | ||||
r1382 | ||||
def test_delete(self): | ||||
r1436 | self.log_user() | |||
Mads Kiilerich
|
r3417 | users_group_name = TEST_USER_GROUP + 'another' | ||
r1436 | response = self.app.post(url('users_groups'), | |||
{'users_group_name':users_group_name, | ||||
'active':True}) | ||||
response.follow() | ||||
self.checkSessionFlash(response, | ||||
Mads Kiilerich
|
r3565 | 'Created user group %s' % users_group_name) | ||
r1436 | ||||
Mads Kiilerich
|
r3417 | gr = self.Session.query(UserGroup)\ | ||
.filter(UserGroup.users_group_name == | ||||
r1436 | users_group_name).one() | |||
response = self.app.delete(url('users_group', id=gr.users_group_id)) | ||||
Mads Kiilerich
|
r3417 | gr = self.Session.query(UserGroup)\ | ||
.filter(UserGroup.users_group_name == | ||||
r1436 | users_group_name).scalar() | |||
self.assertEqual(gr, None) | ||||
r2064 | def test_enable_repository_read_on_group(self): | |||
self.log_user() | ||||
Mads Kiilerich
|
r3417 | users_group_name = TEST_USER_GROUP + 'another2' | ||
r2064 | response = self.app.post(url('users_groups'), | |||
{'users_group_name': users_group_name, | ||||
r2709 | 'active': True}) | |||
r2064 | response.follow() | |||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2064 | self.checkSessionFlash(response, | |||
Mads Kiilerich
|
r3565 | 'Created user group %s' % users_group_name) | ||
r2709 | ## ENABLE REPO CREATE ON A GROUP | |||
r2064 | response = self.app.put(url('users_group_perm', id=ug.users_group_id), | |||
{'create_repo_perm': True}) | ||||
response.follow() | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2064 | p = Permission.get_by_key('hg.create.repository') | |||
r2709 | p2 = Permission.get_by_key('hg.fork.none') | |||
# check if user has this perms, they should be here since | ||||
# defaults are on | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group == ug).all() | ||||
r2709 | ||||
r2064 | self.assertEqual( | |||
r2709 | [[x.users_group_id, x.permission_id, ] for x in perms], | |||
[[ug.users_group_id, p.permission_id], | ||||
[ug.users_group_id, p2.permission_id]] | ||||
) | ||||
## DISABLE REPO CREATE ON A GROUP | ||||
response = self.app.put(url('users_group_perm', id=ug.users_group_id), | ||||
{}) | ||||
response.follow() | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2709 | p = Permission.get_by_key('hg.create.none') | |||
p2 = Permission.get_by_key('hg.fork.none') | ||||
# check if user has this perms, they should be here since | ||||
# defaults are on | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group == ug).all() | ||||
r2709 | ||||
self.assertEqual( | ||||
r2741 | sorted([[x.users_group_id, x.permission_id, ] for x in perms]), | |||
sorted([[ug.users_group_id, p.permission_id], | ||||
[ug.users_group_id, p2.permission_id]]) | ||||
r2064 | ) | |||
# DELETE ! | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2064 | ugid = ug.users_group_id | |||
response = self.app.delete(url('users_group', id=ug.users_group_id)) | ||||
response = response.follow() | ||||
Mads Kiilerich
|
r3417 | gr = self.Session.query(UserGroup)\ | ||
.filter(UserGroup.users_group_name == | ||||
r2064 | users_group_name).scalar() | |||
self.assertEqual(gr, None) | ||||
p = Permission.get_by_key('hg.create.repository') | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group_id == ugid).all() | ||||
r2709 | perms = [[x.users_group_id, | |||
x.permission_id, ] for x in perms] | ||||
self.assertEqual( | ||||
perms, | ||||
[] | ||||
) | ||||
def test_enable_repository_fork_on_group(self): | ||||
self.log_user() | ||||
Mads Kiilerich
|
r3417 | users_group_name = TEST_USER_GROUP + 'another2' | ||
r2709 | response = self.app.post(url('users_groups'), | |||
{'users_group_name': users_group_name, | ||||
'active': True}) | ||||
response.follow() | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2709 | self.checkSessionFlash(response, | |||
Mads Kiilerich
|
r3565 | 'Created user group %s' % users_group_name) | ||
r2709 | ## ENABLE REPO CREATE ON A GROUP | |||
response = self.app.put(url('users_group_perm', id=ug.users_group_id), | ||||
{'fork_repo_perm': True}) | ||||
response.follow() | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2709 | p = Permission.get_by_key('hg.create.none') | |||
p2 = Permission.get_by_key('hg.fork.repository') | ||||
# check if user has this perms, they should be here since | ||||
# defaults are on | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group == ug).all() | ||||
r2709 | ||||
self.assertEqual( | ||||
[[x.users_group_id, x.permission_id, ] for x in perms], | ||||
[[ug.users_group_id, p.permission_id], | ||||
[ug.users_group_id, p2.permission_id]] | ||||
) | ||||
## DISABLE REPO CREATE ON A GROUP | ||||
response = self.app.put(url('users_group_perm', id=ug.users_group_id), | ||||
{}) | ||||
response.follow() | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2709 | p = Permission.get_by_key('hg.create.none') | |||
p2 = Permission.get_by_key('hg.fork.none') | ||||
# check if user has this perms, they should be here since | ||||
# defaults are on | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group == ug).all() | ||||
r2709 | ||||
self.assertEqual( | ||||
[[x.users_group_id, x.permission_id, ] for x in perms], | ||||
[[ug.users_group_id, p.permission_id], | ||||
[ug.users_group_id, p2.permission_id]] | ||||
) | ||||
# DELETE ! | ||||
Mads Kiilerich
|
r3417 | ug = UserGroup.get_by_group_name(users_group_name) | ||
r2709 | ugid = ug.users_group_id | |||
response = self.app.delete(url('users_group', id=ug.users_group_id)) | ||||
response = response.follow() | ||||
Mads Kiilerich
|
r3417 | gr = self.Session.query(UserGroup)\ | ||
.filter(UserGroup.users_group_name == | ||||
r2709 | users_group_name).scalar() | |||
self.assertEqual(gr, None) | ||||
p = Permission.get_by_key('hg.fork.repository') | ||||
Mads Kiilerich
|
r3417 | perms = UserGroupToPerm.query()\ | ||
.filter(UserGroupToPerm.users_group_id == ugid).all() | ||||
r2709 | perms = [[x.users_group_id, | |||
x.permission_id, ] for x in perms] | ||||
r2064 | self.assertEqual( | |||
perms, | ||||
[] | ||||
) | ||||
r1382 | ||||
def test_delete_browser_fakeout(self): | ||||
r1436 | response = self.app.post(url('users_group', id=1), | |||
params=dict(_method='delete')) | ||||
r1382 | ||||
def test_show(self): | ||||
response = self.app.get(url('users_group', id=1)) | ||||
def test_show_as_xml(self): | ||||
response = self.app.get(url('formatted_users_group', id=1, format='xml')) | ||||
def test_edit(self): | ||||
response = self.app.get(url('edit_users_group', id=1)) | ||||
def test_edit_as_xml(self): | ||||
response = self.app.get(url('formatted_edit_users_group', id=1, format='xml')) | ||||
def test_assign_members(self): | ||||
pass | ||||
def test_add_create_permission(self): | ||||
pass | ||||
def test_revoke_members(self): | ||||
pass | ||||