Retry for POST, PUT and DELETE, fixes #577 (#596)

* Retry for POST, PUT and DELETE, fixes #577

* Lint
This commit is contained in:
Stéphane Bruckert authored and GitHub committed 2020-10-24 14:32:04 +01:00
1 parent 275cd7ea89
commit dd948c49d9
5 files changed
+25 -12

No files matched your search

-4
View File
@@ -11,9 +11,5 @@ def get_spotify_playlist(spotify_object, playlist_name, username):
playlists = spotify_object.next(playlists)
def create_spotify_playlist(spotify_object, playlist_name, username):
return spotify_object.user_playlist_create(username, playlist_name)
def get_as_base64(url):
return base64.b64encode(requests.get(url).content).decode("utf-8")
+4 -3
View File
@@ -240,7 +240,7 @@ class AuthTestSpotipy(unittest.TestCase):
self.assertRaises((requests.exceptions.Timeout, requests.exceptions.ConnectionError),
lambda: sp.search(q='my*', type='track'))
def test_max_retries_reached(self):
def test_max_retries_reached_get(self):
spotify_no_retry = Spotify(
client_credentials_manager=SpotifyClientCredentials(),
retries=0)
@@ -248,8 +248,9 @@ class AuthTestSpotipy(unittest.TestCase):
while i < 100:
try:
spotify_no_retry.search(q='foo')
except spotipy.exceptions.SpotifyException as e:
self.assertIsInstance(e, spotipy.exceptions.SpotifyException)
except SpotifyException as e:
self.assertIsInstance(e, SpotifyException)
self.assertEqual(e.http_status, 429)
return
i += 1
self.fail()
+16 -4
View File
@@ -52,12 +52,11 @@ class SpotipyPlaylistApiTest(unittest.TestCase):
token = prompt_for_user_token(cls.username, scope=scope)
cls.spotify = Spotify(auth=token)
cls.spotify_no_retry = Spotify(auth=token, retries=0)
cls.new_playlist_name = 'spotipy-playlist-test'
cls.new_playlist = helpers.get_spotify_playlist(
cls.spotify, cls.new_playlist_name, cls.username) or \
helpers.create_spotify_playlist(
cls.spotify, cls.new_playlist_name, cls.username)
cls.spotify.user_playlist_create(cls.username, cls.new_playlist_name)
cls.new_playlist_uri = cls.new_playlist['uri']
def test_user_playlists(self):
@@ -120,6 +119,19 @@ class SpotipyPlaylistApiTest(unittest.TestCase):
pl = self.spotify.playlist(self.new_playlist['id'])
self.assertEqual(pl["tracks"]["total"], 0)
def test_max_retries_reached_post(self):
i = 0
while i < 100:
try:
self.spotify_no_retry.playlist_change_details(
self.new_playlist['id'], description="test")
except SpotifyException as e:
self.assertIsInstance(e, SpotifyException)
self.assertEqual(e.http_status, 429)
return
i += 1
self.fail()
def test_playlist_add_items(self):
# add tracks to playlist
self.spotify.playlist_add_items(
@@ -223,7 +235,7 @@ class SpotipyLibraryApiTests(unittest.TestCase):
new_total = tracks['total']
self.assertEqual(new_total - total, len(self.four_tracks))
tracks = self.spotify.current_user_saved_tracks_delete(
self.spotify.current_user_saved_tracks_delete(
self.four_tracks)
tracks = self.spotify.current_user_saved_tracks()
new_total = tracks['total']