Exemplo n.º 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,
                    )
                ]
            )
Exemplo n.º 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,
                    )
                ]
            )
Exemplo n.º 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="")
Exemplo n.º 4
0
    def test_get_ad_item_with_no_station_id_specified_raises_exception(self):
        transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

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

        self.assertRaises(errors.ParameterMissing, client.get_ad_item, '',
                          'token_mock')
Exemplo n.º 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)
Exemplo n.º 6
0
    def test_call_should_retry_on_token_error(self):
        transport = Mock(side_effect=[errors.InvalidAuthToken(), None])

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

        client.login("foo", "bar")
        client("method")

        client._authenticate.assert_called_with()
        transport.assert_has_calls([call("method"), call("method")])
Exemplo n.º 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)
            ])