|
|
import unittest
|
|
|
from rhodecode.tests import *
|
|
|
|
|
|
from rhodecode.model.db import User, UsersGroup, UsersGroupMember, UserEmailMap,\
|
|
|
Permission
|
|
|
from rhodecode.model.user import UserModel
|
|
|
|
|
|
from rhodecode.model.meta import Session
|
|
|
from rhodecode.model.users_group import UsersGroupModel
|
|
|
|
|
|
|
|
|
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',
|
|
|
firstname=u'u1', lastname=u'u1')
|
|
|
Session().commit()
|
|
|
self.assertEqual(User.get_by_username(u'test_user'), usr)
|
|
|
|
|
|
# make user group
|
|
|
users_group = UsersGroupModel().create('some_example_group')
|
|
|
Session().commit()
|
|
|
|
|
|
UsersGroupModel().add_user_to_group(users_group, usr)
|
|
|
Session().commit()
|
|
|
|
|
|
self.assertEqual(UsersGroup.get(users_group.users_group_id), users_group)
|
|
|
self.assertEqual(UsersGroupMember.query().count(), 1)
|
|
|
UserModel().delete(usr.user_id)
|
|
|
Session().commit()
|
|
|
|
|
|
self.assertEqual(UsersGroupMember.query().all(), [])
|
|
|
|
|
|
def test_additonal_email_as_main(self):
|
|
|
usr = UserModel().create_or_update(username=u'test_user',
|
|
|
password=u'qweqwe',
|
|
|
email=u'main_email@rhodecode.org',
|
|
|
firstname=u'u1', lastname=u'u1')
|
|
|
Session().commit()
|
|
|
|
|
|
def do():
|
|
|
m = UserEmailMap()
|
|
|
m.email = u'main_email@rhodecode.org'
|
|
|
m.user = usr
|
|
|
Session().add(m)
|
|
|
Session().commit()
|
|
|
self.assertRaises(AttributeError, do)
|
|
|
|
|
|
UserModel().delete(usr.user_id)
|
|
|
Session().commit()
|
|
|
|
|
|
def test_extra_email_map(self):
|
|
|
usr = UserModel().create_or_update(username=u'test_user',
|
|
|
password=u'qweqwe',
|
|
|
email=u'main_email@rhodecode.org',
|
|
|
firstname=u'u1', lastname=u'u1')
|
|
|
Session().commit()
|
|
|
|
|
|
m = UserEmailMap()
|
|
|
m.email = u'main_email2@rhodecode.org'
|
|
|
m.user = usr
|
|
|
Session().add(m)
|
|
|
Session().commit()
|
|
|
|
|
|
u = User.get_by_email(email='main_email@rhodecode.org')
|
|
|
self.assertEqual(usr.user_id, u.user_id)
|
|
|
self.assertEqual(usr.username, u.username)
|
|
|
|
|
|
u = User.get_by_email(email='main_email2@rhodecode.org')
|
|
|
self.assertEqual(usr.user_id, u.user_id)
|
|
|
self.assertEqual(usr.username, u.username)
|
|
|
u = User.get_by_email(email='main_email3@rhodecode.org')
|
|
|
self.assertEqual(None, u)
|
|
|
|
|
|
UserModel().delete(usr.user_id)
|
|
|
Session().commit()
|
|
|
|
|
|
|
|
|
class TestUsers(unittest.TestCase):
|
|
|
|
|
|
def __init__(self, methodName='runTest'):
|
|
|
super(TestUsers, self).__init__(methodName=methodName)
|
|
|
|
|
|
def setUp(self):
|
|
|
self.u1 = UserModel().create_or_update(username=u'u1',
|
|
|
password=u'qweqwe',
|
|
|
email=u'u1@rhodecode.org',
|
|
|
firstname=u'u1', lastname=u'u1')
|
|
|
|
|
|
def tearDown(self):
|
|
|
perm = Permission.query().all()
|
|
|
for p in perm:
|
|
|
UserModel().revoke_perm(self.u1, p)
|
|
|
|
|
|
UserModel().delete(self.u1)
|
|
|
Session().commit()
|
|
|
|
|
|
def test_add_perm(self):
|
|
|
perm = Permission.query().all()[0]
|
|
|
UserModel().grant_perm(self.u1, perm)
|
|
|
Session().commit()
|
|
|
self.assertEqual(UserModel().has_perm(self.u1, perm), True)
|
|
|
|
|
|
def test_has_perm(self):
|
|
|
perm = Permission.query().all()
|
|
|
for p in perm:
|
|
|
has_p = UserModel().has_perm(self.u1, p)
|
|
|
self.assertEqual(False, has_p)
|
|
|
|
|
|
def test_revoke_perm(self):
|
|
|
perm = Permission.query().all()[0]
|
|
|
UserModel().grant_perm(self.u1, perm)
|
|
|
Session().commit()
|
|
|
self.assertEqual(UserModel().has_perm(self.u1, perm), True)
|
|
|
|
|
|
#revoke
|
|
|
UserModel().revoke_perm(self.u1, perm)
|
|
|
Session().commit()
|
|
|
self.assertEqual(UserModel().has_perm(self.u1, perm), False)
|
|
|
|