playlist_add_items() to accept only full URIs and URLs (#914)

* updated functionality of playlist_add_items() to accept only uris and urls (ids should not be allowed since 'track' or 'episode' cannot be inferred purely from the id)

* added a check to raise runtime error if any items in playlist_add_items() are not URIs or URLs

* modified change log

* CL format fix

---------

Co-authored-by: Stéphane Bruckert <stephane.bruckert@gmail.com>
This commit is contained in:
oliverawandStéphane Bruckert authored and GitHub committed 2025-01-19 16:33:57 +00:00
1 parent 71fe07a5d1
commit 1caf97296c
3 files changed
+28 -4

No files matched your search

+9 -1
View File
@@ -47,6 +47,14 @@ class SpotipyPlaylistApiTest(unittest.TestCase):
"spotify:episode:7cRcsGYYRUFo1OF3RgRzdx",
]
cls.tracks_and_episodes = [
"spotify:track:3F5CgOj3wFlRv51JsHbxhe",
"http://open.spotify.com/track/5mCPDVBb16L4XQwDdbRUpz",
"spotify:episode:7AY0yaj2k0W3obOSCfm6m4",
"https://open.spotify.com/episode/5AJB2BTp7RExSGpbQlIsXI"
]
scope = (
'playlist-modify-public '
'user-library-read '
@@ -112,7 +120,7 @@ class SpotipyPlaylistApiTest(unittest.TestCase):
def test_playlist_replace_items(self):
# add tracks to playlist
self.spotify.playlist_add_items(
self.new_playlist['id'], self.four_tracks)
self.new_playlist['id'], self.tracks_and_episodes)
playlist = self.spotify.playlist(self.new_playlist['id'])
self.assertEqual(playlist['tracks']['total'], 4)
self.assertEqual(len(playlist['tracks']['items']), 4)