Example #1
0
    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
Example #2
0
    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"
Example #3
0
    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
Example #4
0
    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"
Example #5
0
    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"
Example #6
0
    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"
Example #7
0
    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
Example #8
0
 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