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):
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):
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()
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):
response = self.app.post(url('users_group', id=1),
params=dict(_method='put'))
def test_delete(self):
users_group_name = TEST_USERS_GROUP + 'another'
'created users group %s' % users_group_name)
gr = self.Session.query(UsersGroup)\
.filter(UsersGroup.users_group_name ==
users_group_name).one()
response = self.app.delete(url('users_group', id=gr.users_group_id))
users_group_name).scalar()
self.assertEqual(gr, None)
def test_enable_repository_read_on_group(self):
users_group_name = TEST_USERS_GROUP + 'another2'
ug = UsersGroup.get_by_group_name(users_group_name)
response = self.app.put(url('users_group_perm', id=ug.users_group_id),
{'create_repo_perm': True})
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 !
ugid = ug.users_group_id
response = self.app.delete(url('users_group', id=ug.users_group_id))
response = response.follow()
.filter(UsersGroupToPerm.users_group_id == ugid).all()
[]
def test_delete_browser_fakeout(self):
params=dict(_method='delete'))
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):
def test_revoke_members(self):
@@ -116,109 +116,109 @@ class TestReposGroups(unittest.TestCase)
new_sg1 = self.__update_group(sg1.group_id, 'after', parent_id=self.g3.group_id)
self.assertTrue(self.__check_path('test3', 'after'))
self.assertEqual(RepoGroup.get_by_group_name('test3/initial'), None)
new_sg1 = self.__update_group(sg1.group_id, 'hello')
self.assertTrue(self.__check_path('hello'))
self.assertEqual(RepoGroup.get_by_group_name('hello'), new_sg1)
def test_subgrouping_with_repo(self):
g1 = _make_group('g1')
g2 = _make_group('g2')
# create new repo
form_data = dict(repo_name='john',
repo_name_full='john',
fork_name=None,
description=None,
repo_group=None,
private=False,
repo_type='hg',
clone_uri=None)
cur_user = User.get_by_username(TEST_USER_ADMIN_LOGIN)
r = RepoModel().create(form_data, cur_user)
self.assertEqual(r.repo_name, 'john')
# put repo into group
form_data = form_data
form_data['repo_group'] = g1.group_id
form_data['perms_new'] = []
form_data['perms_updates'] = []
RepoModel().update(r.repo_name, form_data)
self.assertEqual(r.repo_name, 'g1/john')
self.__update_group(g1.group_id, 'g1', parent_id=g2.group_id)
self.assertTrue(self.__check_path('g2', 'g1'))
# test repo
self.assertEqual(r.repo_name, os.path.join('g2', 'g1', r.just_name))
def test_move_to_root(self):
g1 = _make_group('t11')
Session.commit()
g2 = _make_group('t22',parent_id=g1.group_id)
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)
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'):
Session.remove()
super(TestUser, self).__init__(methodName=methodName)
def test_create_and_remove(self):
usr = UserModel().create_or_update(username=u'test_user', password=u'qweqwe',
email=u'u232@rhodecode.org',
name=u'u1', lastname=u'u1')
self.assertEqual(User.get_by_username(u'test_user'), usr)
# make users group
users_group = UsersGroupModel().create('some_example_group')
UsersGroupModel().add_user_to_group(users_group, usr)
self.assertEqual(UsersGroup.get(users_group.users_group_id), users_group)
self.assertEqual(UsersGroupMember.query().count(), 1)
UserModel().delete(usr.user_id)
self.assertEqual(UsersGroupMember.query().all(), [])
class TestNotifications(unittest.TestCase):
self.u1 = UserModel().create_or_update(username=u'u1',
password=u'qweqwe',
email=u'u1@rhodecode.org',
self.u1 = self.u1.user_id
self.u2 = UserModel().create_or_update(username=u'u2',
email=u'u2@rhodecode.org',
name=u'u2', lastname=u'u3')
self.u2 = self.u2.user_id
self.u3 = UserModel().create_or_update(username=u'u3',
Status change: