From e6335911d8763cf4bfaa709364e0dc6fc9d60f12 Mon Sep 17 00:00:00 2001 From: jcass Date: Mon, 28 Dec 2015 18:36:16 +0200 Subject: Align with using Pandora's ParameterMissing exception for ValueErrors. --- pandora/client.py | 4 ++-- pandora/models/pandora.py | 7 ++++--- tests/test_pandora/test_client.py | 4 ++-- tests/test_pandora/test_models.py | 3 ++- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pandora/client.py b/pandora/client.py index fafd872..4a8a26d 100644 --- a/pandora/client.py +++ b/pandora/client.py @@ -262,8 +262,8 @@ class APIClient(BaseAPIClient): from .models.pandora import AdItem if not station_id: - raise ValueError("The 'station_id' param must be defined, " - "got: '{}'".format(station_id)) + raise errors.ParameterMissing("The 'station_id' param must be " + "defined, got: '{}'".format(station_id)) ad_metadata = self.get_ad_metadata(ad_token) ad_metadata["stationId"] = station_id diff --git a/pandora/models/pandora.py b/pandora/models/pandora.py index 6abd3a7..3a901e5 100644 --- a/pandora/models/pandora.py +++ b/pandora/models/pandora.py @@ -1,6 +1,7 @@ from .. import BaseAPIClient from . import with_metaclass, ModelMetaClass from . import Field, PandoraModel, PandoraListModel, PandoraDictListModel +from ..errors import ParameterMissing class Station(PandoraModel): @@ -231,13 +232,13 @@ class AdItem(PlaylistModel): if self.tracking_tokens: self._api_client.register_ad(station_id, self.tracking_tokens) else: - raise ValueError('No ad tracking tokens available for ' - 'registration.') + raise ParameterMissing('No ad tracking tokens available ' + 'for registration.') def prepare_playback(self): try: self.register_ad(self.station_id) - except ValueError as e: + except ParameterMissing as e: if not self.tracking_tokens: # Ignore registration attempts if no ad tracking tokens are # available diff --git a/tests/test_pandora/test_client.py b/tests/test_pandora/test_client.py index 24d9734..69fb632 100644 --- a/tests/test_pandora/test_client.py +++ b/tests/test_pandora/test_client.py @@ -1,7 +1,7 @@ from unittest import TestCase from pandora.client import APIClient, BaseAPIClient -from pandora.errors import InvalidAuthToken +from pandora.errors import InvalidAuthToken, ParameterMissing from pandora.py2compat import Mock, call, patch from tests.test_pandora.test_models import TestAdItem @@ -117,4 +117,4 @@ class TestGettingAds(TestCase): client = APIClient(transport, None, None, None, None) client.get_ad_metadata = Mock() - self.assertRaises(ValueError, client.get_ad_item, '', 'mock_token') + self.assertRaises(ParameterMissing, client.get_ad_item, '', 'mock_token') diff --git a/tests/test_pandora/test_models.py b/tests/test_pandora/test_models.py index 06c988c..538cee5 100644 --- a/tests/test_pandora/test_models.py +++ b/tests/test_pandora/test_models.py @@ -3,6 +3,7 @@ from datetime import datetime from pandora.py2compat import Mock, patch from pandora import APIClient from pandora.models.pandora import AdItem, PlaylistModel +from pandora.errors import ParameterMissing import pandora.models as m @@ -235,7 +236,7 @@ class TestAdItem(TestCase): assert self.result._api_client.register_ad.called def test_register_ad_raises_exception_if_no_tracking_tokens_available(self): - with self.assertRaises(ValueError): + with self.assertRaises(ParameterMissing): self.result.tracking_tokens = [] self.result._api_client.register_ad = Mock(spec=AdItem) -- cgit v1.2.3