mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-10-12 01:10:45 +00:00
* Add SpotifyImplicitGrant with get_access_token and get_cached_token (and minimum related functions) * Add some overlooked necessary methods/values in SpotifyImplicitGrant * Remove unsuppported functionality and make SpotifyImplicitGrant public * Allow/Expose integration of SpotifyImplicitGrant in client * Add Implicit Grant tests and decrease abilities of prompt_for_user_token Remove Implicit Grant and state support from prompt_for_user_token * Add documentation and changelog entry * Touch up PEP8 compliance * Ignore long line with link for flake8 * Correct changelog * Restore compatibility with Python 2.7 * Correct help(SpotifyImplicitGrant.get_access_token) * Remove as_dict from SpotifyImplicitGrant.get_access_token * Combine status check functionality with implicit grant support In oauth2.py: * Add state checking to SpotifyImplicitGrant * Add dedicated SpotifyStateError as subclass of SpotifyOauthError * Moved `_get_user_input` from SpotifyOAuth to superclass SpotifyAuthBase * Renamed `parse_oauth_response_url` to `parse_auth_response_url` * Moved error handling into `parse_auth_response_url` Made minor changes in tests and client.py accordingly * Update changelog * Trim down tests for SpotifyImplicitGrant * Fix trailing whitespace
This commit is contained in:
1 parent
ed136d15df
commit
38515689bc
6 files changed
+451
-29
No files matched your search
@@ -5,6 +5,7 @@ from spotipy import (
|
||||
prompt_for_user_token,
|
||||
Spotify,
|
||||
SpotifyException,
|
||||
SpotifyImplicitGrant
|
||||
)
|
||||
import unittest
|
||||
import requests
|
||||
@@ -395,3 +396,36 @@ class SpotipyPlayerApiTests(unittest.TestCase):
|
||||
after=res['cursors']['before'])
|
||||
self.assertLessEqual(len(res['items']), 50)
|
||||
self.assertGreater(res['items'][0]['played_at'], played_at)
|
||||
|
||||
|
||||
class SpotipyImplicitGrantTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
scope = (
|
||||
'user-follow-read '
|
||||
'user-follow-modify '
|
||||
)
|
||||
auth_manager = SpotifyImplicitGrant(scope=scope,
|
||||
cache_path=".cache-implicittest")
|
||||
cls.spotify = Spotify(auth_manager=auth_manager)
|
||||
|
||||
def test_user_follows_and_unfollows_artist(self):
|
||||
# Initially follows 1 artist
|
||||
current_user_followed_artists = self.spotify.current_user_followed_artists()[
|
||||
'artists']['total']
|
||||
|
||||
# Follow 2 more artists
|
||||
artists = ["6DPYiyq5kWVQS4RGwxzPC7", "0NbfKEOTQCcwd6o7wSDOHI"]
|
||||
self.spotify.user_follow_artists(artists)
|
||||
res = self.spotify.current_user_followed_artists()
|
||||
self.assertEqual(res['artists']['total'], current_user_followed_artists + len(artists))
|
||||
|
||||
# Unfollow these 2 artists
|
||||
self.spotify.user_unfollow_artists(artists)
|
||||
res = self.spotify.current_user_followed_artists()
|
||||
self.assertEqual(res['artists']['total'], current_user_followed_artists)
|
||||
|
||||
def test_current_user(self):
|
||||
c_user = self.spotify.current_user()
|
||||
user = self.spotify.user(c_user['id'])
|
||||
self.assertEqual(c_user['display_name'], user['display_name'])
|
||||
Reference in new issue
Block a user