test_admin_users_groups.py
224 lines
| 8.3 KiB
| text/x-python
|
PythonLexer
r1382 | from rhodecode.tests import * | |||
r2064 | from rhodecode.model.db import UsersGroup, UsersGroupToPerm, Permission | |||
r1382 | ||||
TEST_USERS_GROUP = 'admins_test' | ||||
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() | |||
r1382 | users_group_name = TEST_USERS_GROUP | |||
response = self.app.post(url('users_groups'), | ||||
r2064 | {'users_group_name': users_group_name, | |||
r1382 | 'active':True}) | |||
response.follow() | ||||
self.checkSessionFlash(response, | ||||
'created users group %s' % TEST_USERS_GROUP) | ||||
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() | |||
users_group_name = TEST_USERS_GROUP + 'another' | ||||
response = self.app.post(url('users_groups'), | ||||
{'users_group_name':users_group_name, | ||||
'active':True}) | ||||
response.follow() | ||||
self.checkSessionFlash(response, | ||||
'created users group %s' % users_group_name) | ||||
r1749 | gr = self.Session.query(UsersGroup)\ | |||
r1436 | .filter(UsersGroup.users_group_name == | |||
users_group_name).one() | ||||
response = self.app.delete(url('users_group', id=gr.users_group_id)) | ||||
r1749 | gr = self.Session.query(UsersGroup)\ | |||
r1436 | .filter(UsersGroup.users_group_name == | |||
users_group_name).scalar() | ||||
self.assertEqual(gr, None) | ||||
r2064 | 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, | ||||
r2709 | 'active': True}) | |||
r2064 | response.follow() | |||
ug = UsersGroup.get_by_group_name(users_group_name) | ||||
self.checkSessionFlash(response, | ||||
'created users 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() | ||||
ug = UsersGroup.get_by_group_name(users_group_name) | ||||
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 | ||||
r2064 | perms = UsersGroupToPerm.query()\ | |||
.filter(UsersGroupToPerm.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() | ||||
ug = UsersGroup.get_by_group_name(users_group_name) | ||||
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 | ||||
perms = UsersGroupToPerm.query()\ | ||||
.filter(UsersGroupToPerm.users_group == ug).all() | ||||
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]] | ||||
r2064 | ) | |||
# 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() | ||||
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() | ||||
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) | ||||
## 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() | ||||
ug = UsersGroup.get_by_group_name(users_group_name) | ||||
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 | ||||
perms = UsersGroupToPerm.query()\ | ||||
.filter(UsersGroupToPerm.users_group == ug).all() | ||||
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() | ||||
ug = UsersGroup.get_by_group_name(users_group_name) | ||||
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 | ||||
perms = UsersGroupToPerm.query()\ | ||||
.filter(UsersGroupToPerm.users_group == ug).all() | ||||
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 ! | ||||
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.fork.repository') | ||||
perms = UsersGroupToPerm.query()\ | ||||
.filter(UsersGroupToPerm.users_group_id == ugid).all() | ||||
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 | ||||