def test_get_nonexistent_model(self, get_mock_db): class Artist(RedisModel): pass mock_db = get_mock_db() mock_db.hlen.return_value = 0 mock_db.hgetall.return_value = {} val = database.get(Artist, "You'veProbabyNeverHeardOfThem") self.assertIsNone(val)
def get_reddit_user_session(username): r = get_reddit_oauth_session() user = database.get(User, username) last_refresh = datetime.strptime(user.last_refresh, TIMESTAMP_FORMAT) now = datetime.now() if (now - last_refresh).seconds > AUTH_EXPIRE_TIME: refresh_token = user.refresh_token access_information = r.refresh_access_information(refresh_token) update_access_information(user, access_information) access_information = user.access_information() r.set_access_credentials(**access_information) return r
def authenticate(state, code): r = get_reddit_oauth_session() if database.get('authentication_state', state) is None: raise AuthenticationFailure("Invalid state token") database.delete('authentication_state', state) access_information = r.get_access_information(code) authenticated_user = r.get_me() username = authenticated_user.name user = User(username) user.username = username update_access_information(user, access_information) database.save(user) login.set_remember_token(user) return user
def test_get_model(self, get_mock_db): class Artist(RedisModel): model_name = 'artist' model_fields = ('genre', 'location') model_sets = ('members', 'albums') fields = {'genre': 'Rock', 'location': 'Detroit'} sets = [{'Jack White', 'Meg White'}, {'Elephant'}] mock_db = get_mock_db() mock_db.hgetall.return_value = fields mock_db.smembers.side_effect = sets val = database.get(Artist, 'TheWhiteStripes') mock_db.hgetall.assert_called_once_with('artist:TheWhiteStripes') self.assertEqual(val.genre, fields['genre']) self.assertEqual(val.location, fields['location']) self.assertEqual(val.members, sets[0]) self.assertEqual(val.albums, sets[1])
def test_get(self, get_mock_db): mock_db = get_mock_db() mock_db.get.return_value = 'edm' val = database.get('artist', 'Deadmau5') self.assertEqual(val, 'edm') mock_db.get.assert_called_once_with('artist:Deadmau5')
def get_auth_token(id): user = database.get(User, id) return user.remember_token
def load_token(token): id = database.get('remember_token', token) if id is None: return None return database.get(User, id)
def load_user_from_id(id): return database.get(User, id)