diff options
author | jcass <john.cass77@gmail.com> | 2015-12-27 11:54:23 +0200 |
---|---|---|
committer | jcass <john.cass77@gmail.com> | 2015-12-27 11:54:23 +0200 |
commit | 48e6e7e05647a9c6912db3db6bb1739578f001fa (patch) | |
tree | 593ef34060353b5212342ab89032125e0eeb3c67 /tests | |
parent | d4b03974bd301523c22bd82a824f07e4957b7bb6 (diff) | |
download | pydora-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.py | 39 |
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 @@ | |||
1 | from unittest import TestCase | 1 | from unittest import TestCase |
2 | from pandora import errors | ||
3 | 2 | ||
4 | from pandora.client import APIClient | 3 | from pandora.client import APIClient |
5 | from pandora.errors import InvalidAuthToken | 4 | from pandora.errors import InvalidAuthToken, ParameterMissing |
6 | from pandora.models.pandora import Station, AdItem | 5 | from pandora.models.pandora import Station, AdItem, PlaylistItem |
7 | from pandora.py2compat import Mock, patch | 6 | from pandora.py2compat import Mock, patch |
8 | from pydora.utils import iterate_forever | 7 | from pydora.utils import iterate_forever |
9 | from tests.test_pandora.test_models import TestAdItem | ||
10 | 8 | ||
11 | 9 | ||
12 | class TestIterateForever(TestCase): | 10 | class 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() | ||