aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorjcass <john.cass77@gmail.com>2015-12-27 11:54:23 +0200
committerjcass <john.cass77@gmail.com>2015-12-27 11:54:23 +0200
commit48e6e7e05647a9c6912db3db6bb1739578f001fa (patch)
tree593ef34060353b5212342ab89032125e0eeb3c67 /tests
parentd4b03974bd301523c22bd82a824f07e4957b7bb6 (diff)
downloadpydora-48e6e7e05647a9c6912db3db6bb1739578f001fa.tar.bz2
pydora-48e6e7e05647a9c6912db3db6bb1739578f001fa.tar.xz
pydora-48e6e7e05647a9c6912db3db6bb1739578f001fa.zip
Refactor test cases for utils: check that ParameterMissing is re-reaised.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_pydora/test_utils.py39
1 files changed, 23 insertions, 16 deletions
diff --git a/tests/test_pydora/test_utils.py b/tests/test_pydora/test_utils.py
index 8298e28..64cdf74 100644
--- a/tests/test_pydora/test_utils.py
+++ b/tests/test_pydora/test_utils.py
@@ -1,32 +1,39 @@
1from unittest import TestCase 1from unittest import TestCase
2from pandora import errors
3 2
4from pandora.client import APIClient 3from pandora.client import APIClient
5from pandora.errors import InvalidAuthToken 4from pandora.errors import InvalidAuthToken, ParameterMissing
6from pandora.models.pandora import Station, AdItem 5from pandora.models.pandora import Station, AdItem, PlaylistItem
7from pandora.py2compat import Mock, patch 6from pandora.py2compat import Mock, patch
8from pydora.utils import iterate_forever 7from pydora.utils import iterate_forever
9from tests.test_pandora.test_models import TestAdItem
10 8
11 9
12class TestIterateForever(TestCase): 10class TestIterateForever(TestCase):
13 11
14 def setUp(self): 12 def setUp(self):
15 transport = Mock(side_effect=[InvalidAuthToken(), None]) 13 self.transport = Mock(side_effect=[InvalidAuthToken(), None])
16 client = APIClient(transport, None, None, None, None) 14 self.client = APIClient(self.transport, None, None, None, None)
17 client._authenticate = Mock() 15 self.client._authenticate = Mock()
18 self.result = AdItem.from_json(client, TestAdItem.JSON_DATA)
19 16
20 def test_handle_missing_params_exception_due_to_missing_ad_tokens(self): 17 def test_handle_missing_params_exception_due_to_missing_ad_tokens(self):
21 with patch.object(APIClient, 'register_ad', side_effect=errors.ParameterMissing("ParameterMissing")): 18 with patch.object(APIClient, 'get_playlist') as get_playlist_mock:
19 with patch.object(APIClient, 'register_ad', side_effect=ParameterMissing("ParameterMissing")):
22 20
23 station = Mock(spec=Station) 21 station = Station.from_json(self.client, {'stationToken': 'dummy_token'})
24 station.token = 'mock_token' 22 dummy_ad = AdItem.from_json(self.client, {'station_id': 'dummy_id'})
23 get_playlist_mock.return_value=iter([dummy_ad])
25 24
26 self.result.tracking_tokens = [] 25 station_iter = iterate_forever(station.get_playlist)
27 26
28 station.get_playlist.return_value = iter([self.result]) 27 next_track = station_iter.next()
29 station_iter = iterate_forever(station.get_playlist) 28 self.assertEqual(dummy_ad, next_track)
30 29
31 next_track = station_iter.next() 30 def test_reraise_missing_params_exception(self):
32 self.assertEqual(self.result, next_track) 31 with patch.object(APIClient, 'get_playlist', side_effect=ParameterMissing("ParameterMissing")) as get_playlist_mock:
32 with self.assertRaises(ParameterMissing):
33
34 station = Station.from_json(self.client, {'stationToken': 'dummy_token'})
35 dummy_track = PlaylistItem.from_json(self.client, {'token': 'dummy_token'})
36 get_playlist_mock.return_value=iter([dummy_track])
37
38 station_iter = iterate_forever(station.get_playlist)
39 station_iter.next()