Files @ ff0646d1a1b4
Branch filter:

Location: kallithea/rhodecode/tests/models/test_users.py - annotation

Mads Kiilerich
changelog: make it possible to use closed branches in ?branch=...

Closed branches in Mercurial are just not announced. It should still be
possible to use them. (And arguably there should also be a way to explore them
in the UI.)
95624ce4465f
95624ce4465f
95624ce4465f
fa6ba6727475
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
fa6ba6727475
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
b8f929bff7e3
fa6ba6727475
95624ce4465f
95624ce4465f
fa6ba6727475
95624ce4465f
95624ce4465f
fa6ba6727475
fa6ba6727475
95624ce4465f
95624ce4465f
95624ce4465f
fa6ba6727475
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
95624ce4465f
import unittest
from rhodecode.tests import *

from rhodecode.model.db import User, UserGroup, UserGroupMember, UserEmailMap,\
    Permission
from rhodecode.model.user import UserModel

from rhodecode.model.meta import Session
from rhodecode.model.users_group import UserGroupModel


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 = UserGroupModel().create('some_example_group')
        Session().commit()

        UserGroupModel().add_user_to_group(users_group, usr)
        Session().commit()

        self.assertEqual(UserGroup.get(users_group.users_group_id), users_group)
        self.assertEqual(UserGroupMember.query().count(), 1)
        UserModel().delete(usr.user_id)
        Session().commit()

        self.assertEqual(UserGroupMember.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)