def test_returns_none_if_not_playable(self, web_track_mock, caplog): web_track_mock["is_playable"] = False ref = translator.web_to_track_ref(web_track_mock) assert ref is None assert "'spotify:track:abc' is not playable" in caplog.text
def test_ignore_missing_is_playable(self, web_track_mock): del web_track_mock["is_playable"] ref = translator.web_to_track_ref(web_track_mock, check_playable=False) assert ref.type == models.Ref.TRACK assert ref.uri == "spotify:track:abc" assert ref.name == "ABC 123"
def test_as_items(self, web_track_mock, web_playlist_mock): track_ref = translator.web_to_track_ref(web_track_mock) items = translator.to_playlist(web_playlist_mock, as_items=True) assert track_ref in items
def test_uri_uses_relinked_from_uri(self, web_track_mock): web_track_mock["linked_from"] = {"uri": "spotify:track:xyz"} ref = translator.web_to_track_ref(web_track_mock) assert ref.uri == "spotify:track:xyz"
def test_without_name_uses_uri(self, web_track_mock): del web_track_mock["name"] ref = translator.web_to_track_ref(web_track_mock) assert ref.name == "spotify:track:abc"
def test_successful_translation(self, web_track_mock): ref = translator.web_to_track_ref(web_track_mock) assert ref.type == models.Ref.TRACK assert ref.uri == "spotify:track:abc" assert ref.name == "ABC 123"
def test_returns_none_if_wrong_type(self, web_track_mock): web_track_mock["type"] = "playlist" assert translator.web_to_track_ref(web_track_mock) is None
def test_returns_none_if_invalid(self, web_track_mock): with patch.object(translator, "valid_web_data", return_value=False): assert translator.web_to_track_ref(web_track_mock) is None