Пример #1
0
    def test_get_user(self, mock_db_get_user):
        t = int(time.time())
        mock_db_get_user.return_value = {
            'user_id': 1,
            'musicbrainz_id': 'spotify_user',
            'musicbrainz_row_id': 312,
            'user_token': 'token-token-token',
            'token_expires': t,
            'refresh_token': 'refresh-refresh-refresh',
            'last_updated': None,
            'record_listens': True,
            'error_message': 'oops',
            'latest_listened_at': None,
            'permission': 'user-read-recently-played',
        }

        user = spotify.get_user(1)
        self.assertIsInstance(user, spotify.Spotify)
        self.assertEqual(user.user_id, 1)
        self.assertEqual(user.musicbrainz_id, 'spotify_user')
        self.assertEqual(user.user_token, 'token-token-token')
        self.assertEqual(user.token_expires, t)
        self.assertEqual(user.last_updated, None)
        self.assertEqual(user.record_listens, True)
        self.assertEqual(user.error_message, 'oops')
Пример #2
0
def refresh_spotify_token():
    spotify_user = spotify.get_user(current_user.id)
    if not spotify_user:
        raise APINotFound("User has not authenticated to Spotify")
    if spotify_user.token_expired:
        try:
            spotify_user = spotify.refresh_user_token(spotify_user)
        except spotify.SpotifyAPIError:
            raise APIServiceUnavailable("Cannot refresh Spotify token right now")

    return jsonify({
        'id': current_user.id,
        'musicbrainz_id': current_user.musicbrainz_id,
        'user_token': spotify_user.user_token,
        'permission': spotify_user.permission,
    })
Пример #3
0
def connect_spotify():
    if request.method == 'POST' and request.form.get('delete') == 'yes':
        spotify.remove_user(current_user.id)
        flash.success('Your Spotify account has been unlinked')

    user = spotify.get_user(current_user.id)
    spotify_url = None
    if not user:
        sp_oauth = spotify.get_spotify_oauth()
        spotify_url = sp_oauth.get_authorize_url()

    return render_template(
        'user/spotify.html',
        account=user,
        last_updated=user.last_updated_iso if user else None,
        latest_listened_at=user.latest_listened_at_iso if user else None,
        spotify_login_url=spotify_url)
Пример #4
0
def connect_spotify():
    if request.method == 'POST' and request.form.get('delete') == 'yes':
        spotify.remove_user(current_user.id)
        flash.success('Your Spotify account has been unlinked')

    user = spotify.get_user(current_user.id)
    spotify_url = None
    if not user:
        sp_oauth = spotify.get_spotify_oauth()
        spotify_url = sp_oauth.get_authorize_url()

    return render_template(
        'user/spotify.html',
        account=user,
        last_updated=user.last_updated_iso if user else None,
        latest_listened_at=user.latest_listened_at_iso if user else None,
        spotify_login_url=spotify_url
    )
Пример #5
0
def connect_spotify():
    if request.method == 'POST' and request.form.get('delete') == 'yes':
        spotify.remove_user(current_user.id)
        flash.success('Your Spotify account has been unlinked')

    user = spotify.get_user(current_user.id)
    only_listen_sp_oauth = spotify.get_spotify_oauth(spotify.SPOTIFY_LISTEN_PERMISSIONS)
    only_import_sp_oauth = spotify.get_spotify_oauth(spotify.SPOTIFY_IMPORT_PERMISSIONS)
    both_sp_oauth = spotify.get_spotify_oauth(spotify.SPOTIFY_LISTEN_PERMISSIONS + spotify.SPOTIFY_IMPORT_PERMISSIONS)

    return render_template(
        'user/spotify.html',
        account=user,
        last_updated=user.last_updated_iso if user else None,
        latest_listened_at=user.latest_listened_at_iso if user else None,
        only_listen_url=only_listen_sp_oauth.get_authorize_url(),
        only_import_url=only_import_sp_oauth.get_authorize_url(),
        both_url=both_sp_oauth.get_authorize_url(),
    )
    def test_get_user(self, mock_db_get_user):
        t = int(time.time())
        mock_db_get_user.return_value = {
            'user_id': 1,
            'musicbrainz_id': 'spotify_user',
            'user_token': 'token-token-token',
            'token_expires': t,
            'refresh_token': 'refresh-refresh-refresh',
            'last_updated': None,
            'active': True,
            'error_message': 'oops',
            'latest_listened_at': None,
        }

        user = spotify.get_user(1)
        self.assertIsInstance(user, spotify.Spotify)
        self.assertEqual(user.user_id, 1)
        self.assertEqual(user.musicbrainz_id, 'spotify_user')
        self.assertEqual(user.user_token, 'token-token-token')
        self.assertEqual(user.token_expires, t)
        self.assertEqual(user.last_updated, None)
        self.assertEqual(user.active, True)
        self.assertEqual(user.error_message, 'oops')