Beispiel #1
0
    def test_with_enum(self):
        with patch.object(APIClient, "__call__") as playlist_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            urls = [
                AdditionalAudioUrl.HTTP_128_MP3,
                AdditionalAudioUrl.HTTP_24_AACPLUS_ADTS,
            ]

            desired = "HTTP_128_MP3,HTTP_24_AACPLUS_ADTS"

            client.get_playlist("token_mock", additional_urls=urls)

            playlist_mock.assert_has_calls(
                [
                    call(
                        "station.getPlaylist",
                        additionalAudioUrl=desired,
                        audioAdPodCapable=True,
                        includeTrackLength=True,
                        stationToken="token_mock",
                        xplatformAdCapable=True,
                    )
                ]
            )
Beispiel #2
0
    def test_get_ad_item_(self):
        metamock = patch.object(
            APIClient, "__call__", return_value=TestAdItem.JSON_DATA
        )

        with metamock as ad_metadata_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            ad_item = client.get_ad_item("id_mock", "token_mock")
            assert ad_item.station_id == "id_mock"
            assert ad_item.ad_token == "token_mock"

            ad_metadata_mock.assert_has_calls(
                [
                    call(
                        "ad.getAdMetadata",
                        adToken="token_mock",
                        returnAdTrackingTokens=True,
                        supportAudioAds=True,
                    )
                ]
            )
Beispiel #3
0
    def test_non_iterable_string(self):
        with self.assertRaises(TypeError):
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            client.get_playlist('token_mock', additional_urls='')
Beispiel #4
0
    def test_non_iterable_string(self):
        with self.assertRaises(TypeError):
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            client.get_playlist("token_mock", additional_urls="")
Beispiel #5
0
    def test_non_iterable_other(self):
        with self.assertRaises(TypeError):
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            client.get_playlist('token_mock',
                                additional_urls=AdditionalAudioUrl.HTTP_32_WMA)
Beispiel #6
0
    def test_playlist_fetches_ads(self):
        fake_playlist = {"items": [
            {"songName": "test"},
            {"adToken": "foo"},
            {"songName": "test"},
        ]}
        with patch.object(APIClient, '__call__', return_value=fake_playlist):
            client = APIClient(Mock(), None, None, None, None)
            client._authenticate = Mock()

            items = client.get_playlist('token_mock')
            self.assertIsInstance(items[1], AdItem)
Beispiel #7
0
    def test_ad_support_enabled_parameters(self):
        with patch.object(APIClient, '__call__') as playlist_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            client.get_playlist('token_mock')

            playlist_mock.assert_has_calls([call("station.getPlaylist",
                                             audioAdPodCapable=True,
                                             includeTrackLength=True,
                                             stationToken='token_mock',
                                             xplatformAdCapable=True)])
Beispiel #8
0
    def test_playlist_fetches_ads(self):
        fake_playlist = {
            "items": [
                {"songName": "test"},
                {"adToken": "foo"},
                {"songName": "test"},
            ]
        }
        with patch.object(APIClient, "__call__", return_value=fake_playlist):
            client = APIClient(Mock(), None, None, None, None)
            client._authenticate = Mock()

            items = client.get_playlist("token_mock")
            self.assertIsInstance(items[1], AdItem)
Beispiel #9
0
    def test_get_ad_item_(self):
        with patch.object(APIClient, '__call__',
                return_value=TestAdItem.JSON_DATA) as ad_metadata_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            ad_item = client.get_ad_item('id_mock', 'token_mock')
            assert ad_item.station_id == 'id_mock'
            assert ad_item.ad_token == 'token_mock'

            ad_metadata_mock.assert_has_calls([call("ad.getAdMetadata",
                                                    adToken='token_mock',
                                                    returnAdTrackingTokens=True,
                                                    supportAudioAds=True)])
Beispiel #10
0
    def test_ad_support_enabled_parameters(self):
        with patch.object(APIClient, '__call__') as playlist_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            client.get_playlist('token_mock')

            playlist_mock.assert_has_calls([
                call("station.getPlaylist",
                     audioAdPodCapable=True,
                     includeTrackLength=True,
                     stationToken='token_mock',
                     xplatformAdCapable=True)
            ])
Beispiel #11
0
    def test_with_enum(self):
        with patch.object(APIClient, '__call__') as playlist_mock:
            transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

            client = APIClient(transport, None, None, None, None)
            client._authenticate = Mock()

            urls = [AdditionalAudioUrl.HTTP_128_MP3,
                    AdditionalAudioUrl.HTTP_24_AACPLUS_ADTS]

            desired = 'HTTP_128_MP3,HTTP_24_AACPLUS_ADTS'

            client.get_playlist('token_mock', additional_urls=urls)

            playlist_mock.assert_has_calls([call("station.getPlaylist",
                                                 additionalAudioUrl=desired,
                                                 audioAdPodCapable=True,
                                                 includeTrackLength=True,
                                                 stationToken='token_mock',
                                                 xplatformAdCapable=True)])