Exemple #1
0
def create_profile():
    """Create a user, deki_user, and a profile for a test account"""
    user = User.objects.create_user('tester23', '*****@*****.**',
                                    'trustno1')

    deki_user = DekiUser(id=0,
                         username='******',
                         fullname='Tester Twentythree',
                         email='*****@*****.**',
                         gravatar='',
                         profile_url=None)

    profile = UserProfile()
    profile.user = user
    profile.fullname = "Tester Twentythree"
    profile.title = "Spaceship Pilot"
    profile.organization = "UFO"
    profile.location = "Outer Space"
    profile.bio = "I am a freaky space alien."
    profile.irc_nickname = "ircuser"
    profile.locale = 'en-US'
    profile.timezone = 'US/Central'
    profile.save()

    return (user, deki_user, profile)
    def get_django_user_id_for_deki_id(self, deki_user_id):
        """Given a Deki user ID, come up with a Django user object whether we
        need to migrate it first or just fetch it."""
        # If we don't already have this Deki user cached, look up or migrate
        if deki_user_id not in self.user_ids:

            # Look up the user straight from the database
            self.cur.execute("SELECT * FROM users AS u WHERE u.user_id = %s",
                             (deki_user_id,))
            r = list(self._query_dicts(self.cur))

            if not len(r):
                # HACK: If, for some reason the user is missing from MindTouch,
                # just put and use the superuser. Seems to happen mainly for
                # user #0, which is probably superuser anyway.
                return self.get_superuser_id()

            # Build a DekiUser object from the database record, and make sure
            # it's active.
            user = r[0]
            deki_user = DekiUser(id=user['user_id'],
                                 username=user['user_name'],
                                 fullname=user['user_real_name'],
                                 email=user['user_email'],
                                 gravatar='',)
            deki_user.is_active = True

            # Scan user grants for admin roles to set Django flags.
            self.cur.execute("""SELECT * FROM user_grants AS ug
                                WHERE user_id = %s""",
                             (deki_user_id,))
            is_admin = False
            for rg in self._query_dicts(self.cur):
                if rg['role_id'] in self.admin_role_ids:
                    is_admin = True
            deki_user.is_superuser = deki_user.is_staff = is_admin

            # Finally get/create Django user and cache it.
            user = DekiUserBackend.get_or_create_user(deki_user,
                                                      sync_attrs=[])
            self.user_ids[deki_user_id] = user.pk

        return self.user_ids[deki_user_id]
Exemple #3
0
    def test_get_or_create_user_already_exists(self):
        backend = DekiUserBackend()
        deki_user = DekiUser(
            13, 'hobo', 'Hobo McKee', '*****@*****.**',
            'http://www.audienceoftwo.com/pics/upload/v1i6hobo.jpg')

        user = backend.get_or_create_user(deki_user)
        self.assertEquals(user.username, 'hobo')
        self.assertEquals(2, user.id)
        self.assertEquals(3, user.get_profile().id)
        self.assertEquals(13, user.get_profile().deki_user_id)
Exemple #4
0
 def test_new(self, get_deki_user_by_email):
     testaccount_fixture = open(fixture_file)
     user_info = DekiUser.parse_user_info(testaccount_fixture.read())
     get_deki_user_by_email.return_value = user_info
     test(self)
Exemple #5
0
 def test_new(self, put_mindtouch_user):
     testaccount_fixture = open(TESTACCOUNT_FIXTURE_XML)
     user_info = DekiUser.parse_user_info(testaccount_fixture.read())
     put_mindtouch_user.return_value = user_info
     test(self)
Exemple #6
0
 def test_new(self, get_deki_user):
     testaccount_fixture = open(fixture_file)
     user_info = DekiUser.parse_user_info(testaccount_fixture.read())
     get_deki_user.return_value = user_info
     test(self)
Exemple #7
0
 def test_new(self, put_mindtouch_user):
     testaccount_fixture = open(TESTACCOUNT_FIXTURE_XML)
     user_info = DekiUser.parse_user_info(testaccount_fixture.read())
     put_mindtouch_user.return_value = user_info
     test(self)