diff options
-rw-r--r-- | pandora/client.py | 10 | ||||
-rw-r--r-- | pandora/models/search.py | 6 | ||||
-rw-r--r-- | tests/test_pandora/test_client.py | 9 | ||||
-rw-r--r-- | tests/test_pandora/test_models.py | 6 |
4 files changed, 22 insertions, 9 deletions
diff --git a/pandora/client.py b/pandora/client.py index a98056c..e39b2cc 100644 --- a/pandora/client.py +++ b/pandora/client.py | |||
@@ -218,7 +218,11 @@ class APIClient(BaseAPIClient): | |||
218 | ) | 218 | ) |
219 | 219 | ||
220 | def create_station( | 220 | def create_station( |
221 | self, search_token=None, artist_token=None, track_token=None | 221 | self, |
222 | search_token=None, | ||
223 | artist_token=None, | ||
224 | track_token=None, | ||
225 | song_token=None, | ||
222 | ): | 226 | ): |
223 | from .models.station import Station | 227 | from .models.station import Station |
224 | 228 | ||
@@ -227,7 +231,9 @@ class APIClient(BaseAPIClient): | |||
227 | if search_token: | 231 | if search_token: |
228 | kwargs = {"musicToken": search_token} | 232 | kwargs = {"musicToken": search_token} |
229 | elif artist_token: | 233 | elif artist_token: |
230 | kwargs = {"trackToken": artist_token, "musicType": "artist"} | 234 | kwargs = {"musicToken": artist_token, "musicType": "artist"} |
235 | elif song_token: | ||
236 | kwargs = {"musicToken": song_token, "musicType": "song"} | ||
231 | elif track_token: | 237 | elif track_token: |
232 | kwargs = {"trackToken": track_token, "musicType": "song"} | 238 | kwargs = {"trackToken": track_token, "musicType": "song"} |
233 | else: | 239 | else: |
diff --git a/pandora/models/search.py b/pandora/models/search.py index fe31561..55fd685 100644 --- a/pandora/models/search.py +++ b/pandora/models/search.py | |||
@@ -51,7 +51,7 @@ class ArtistSearchResultItem(SearchResultItem): | |||
51 | likely_match = Field("likelyMatch", default=False) | 51 | likely_match = Field("likelyMatch", default=False) |
52 | 52 | ||
53 | def create_station(self): | 53 | def create_station(self): |
54 | self._api_client.create_station(artist_token=self.token) | 54 | return self._api_client.create_station(artist_token=self.token) |
55 | 55 | ||
56 | @classmethod | 56 | @classmethod |
57 | def from_json(cls, api_client, data): | 57 | def from_json(cls, api_client, data): |
@@ -66,7 +66,7 @@ class SongSearchResultItem(SearchResultItem): | |||
66 | song_name = Field("songName") | 66 | song_name = Field("songName") |
67 | 67 | ||
68 | def create_station(self): | 68 | def create_station(self): |
69 | self._api_client.create_station(track_token=self.token) | 69 | return self._api_client.create_station(track_token=self.token) |
70 | 70 | ||
71 | @classmethod | 71 | @classmethod |
72 | def from_json(cls, api_client, data): | 72 | def from_json(cls, api_client, data): |
@@ -80,7 +80,7 @@ class GenreStationSearchResultItem(SearchResultItem): | |||
80 | station_name = Field("stationName") | 80 | station_name = Field("stationName") |
81 | 81 | ||
82 | def create_station(self): | 82 | def create_station(self): |
83 | self._api_client.create_station(search_token=self.token) | 83 | return self._api_client.create_station(search_token=self.token) |
84 | 84 | ||
85 | @classmethod | 85 | @classmethod |
86 | def from_json(cls, api_client, data): | 86 | def from_json(cls, api_client, data): |
diff --git a/tests/test_pandora/test_client.py b/tests/test_pandora/test_client.py index 1c5a229..4262d34 100644 --- a/tests/test_pandora/test_client.py +++ b/tests/test_pandora/test_client.py | |||
@@ -177,7 +177,14 @@ class TestCreatingStation(TestCase): | |||
177 | client = APIClient(Mock(return_value={}), None, None, None, None) | 177 | client = APIClient(Mock(return_value={}), None, None, None, None) |
178 | client.create_station(artist_token="foo") | 178 | client.create_station(artist_token="foo") |
179 | client.transport.assert_called_with( | 179 | client.transport.assert_called_with( |
180 | "station.createStation", trackToken="foo", musicType="artist" | 180 | "station.createStation", musicToken="foo", musicType="artist" |
181 | ) | ||
182 | |||
183 | def test_using_song_token(self): | ||
184 | client = APIClient(Mock(return_value={}), None, None, None, None) | ||
185 | client.create_station(song_token="foo") | ||
186 | client.transport.assert_called_with( | ||
187 | "station.createStation", musicToken="foo", musicType="song" | ||
181 | ) | 188 | ) |
182 | 189 | ||
183 | def test_using_track_token(self): | 190 | def test_using_track_token(self): |
diff --git a/tests/test_pandora/test_models.py b/tests/test_pandora/test_models.py index 8605d1b..a155588 100644 --- a/tests/test_pandora/test_models.py +++ b/tests/test_pandora/test_models.py | |||
@@ -577,7 +577,7 @@ class TestArtistSearchResultItem(TestCase): | |||
577 | ) | 577 | ) |
578 | result._api_client.create_station = Mock() | 578 | result._api_client.create_station = Mock() |
579 | 579 | ||
580 | result.create_station() | 580 | self.assertIsNotNone(result.create_station()) |
581 | result._api_client.create_station.assert_called_with( | 581 | result._api_client.create_station.assert_called_with( |
582 | artist_token=result.token | 582 | artist_token=result.token |
583 | ) | 583 | ) |
@@ -614,7 +614,7 @@ class TestSongSearchResultItem(TestCase): | |||
614 | ) | 614 | ) |
615 | result._api_client.create_station = Mock() | 615 | result._api_client.create_station = Mock() |
616 | 616 | ||
617 | result.create_station() | 617 | self.assertIsNotNone(result.create_station()) |
618 | result._api_client.create_station.assert_called_with( | 618 | result._api_client.create_station.assert_called_with( |
619 | track_token=result.token | 619 | track_token=result.token |
620 | ) | 620 | ) |
@@ -650,7 +650,7 @@ class TestGenreStationSearchResultItem(TestCase): | |||
650 | ) | 650 | ) |
651 | result._api_client.create_station = Mock() | 651 | result._api_client.create_station = Mock() |
652 | 652 | ||
653 | result.create_station() | 653 | self.assertIsNotNone(result.create_station()) |
654 | result._api_client.create_station.assert_called_with( | 654 | result._api_client.create_station.assert_called_with( |
655 | search_token=result.token | 655 | search_token=result.token |
656 | ) | 656 | ) |