def test_returns_bare_albums(self, web_album_mock): web_albums = [web_album_mock] * 3 refs = list(translator.web_to_album_refs(web_albums)) assert refs == [refs[0], refs[0], refs[0]] assert refs[0].type == models.Ref.ALBUM assert refs[0].uri == "spotify:album:def" assert refs[0].name == "DEF 456"
def test_bad_albums_filtered(self, web_album_mock, web_artist_mock): refs = list( translator.web_to_album_refs([{}, web_album_mock, web_artist_mock]) ) assert len(refs) == 1 assert refs[0].type == models.Ref.ALBUM assert refs[0].uri == "spotify:album:def"
def _browse_your_music(web_client, variant): if not web_client.logged_in: return [] if variant in ("tracks", "albums"): items = web_client.get_one( f"me/{variant}", params={ "market": "from_token" }, ).get("items", []) if variant == "tracks": return list(translator.web_to_track_refs(items)) else: return list(translator.web_to_album_refs(items)) else: return []
def _browse_your_music(web_client, variant): if not web_client.logged_in: return [] if variant in ("tracks", "albums"): items = flatten([ page.get("items", []) for page in web_client.get_all( f"me/{variant}", params={ "market": "from_token", "limit": 50 }, ) if page ]) if variant == "tracks": return list(translator.web_to_track_refs(items)) else: return list(translator.web_to_album_refs(items)) else: return []
def _browse_your_music(web_client, variant): if not web_client.logged_in: return [] if variant in ("tracks", "albums"): items = flatten([ page.get("items", []) for page in web_client.get_all( f"me/{variant}", params={ "market": "from_token", "limit": 50 }, ) if page ]) if variant == "tracks": # TODO: without check_playable=False this will hide unplayable # tracks; this will bite us when implementing library editing. return list(translator.web_to_track_refs(items)) else: return list(translator.web_to_album_refs(items)) else: return []