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]
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)
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)
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)
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)