Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
 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])
Пример #8
0
    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])
Пример #9
0
 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')
Пример #10
0
 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')
Пример #11
0
def get_auth_token(id):
    user = database.get(User, id)
    return user.remember_token
Пример #12
0
def load_token(token):
    id = database.get('remember_token', token)
    if id is None:
        return None
    return database.get(User, id)
Пример #13
0
def load_user_from_id(id):
    return database.get(User, id)
Пример #14
0
def get_auth_token(id):
    user = database.get(User, id)
    return user.remember_token
Пример #15
0
def load_token(token):
    id = database.get('remember_token', token)
    if id is None:
        return None
    return database.get(User, id)
Пример #16
0
def load_user_from_id(id):
    return database.get(User, id)