From 5375a14e41547b2a21e03ec5105260d6d332ea11 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Tue, 9 Sep 2014 20:40:26 -0400 Subject: [PATCH] Add subclasses for oauth1 exceptions --- requests_oauthlib/oauth1_session.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/requests_oauthlib/oauth1_session.py b/requests_oauthlib/oauth1_session.py index ce58150e..ab7f4695 100644 --- a/requests_oauthlib/oauth1_session.py +++ b/requests_oauthlib/oauth1_session.py @@ -38,6 +38,16 @@ def __init__(self, message, status_code): self.status_code = status_code +class TokenMissing(ValueError): + def __init__(self, message, response): + super(TokenRequestDenied, self).__init__(message) + self.response = response + + +class VerifierMissing(ValueError): + pass + + class OAuth1Session(requests.Session): """Request signing and convenience methods for the oauth dance. @@ -261,7 +271,7 @@ def fetch_access_token(self, url, verifier=None): if verifier: self._client.client.verifier = verifier if not getattr(self._client.client, 'verifier', None): - raise ValueError('No client verifier has been set.') + raise VerifierMissing('No client verifier has been set.') token = self._fetch_token(url) log.debug('Resetting verifier attribute, should not be used anymore.') self._client.client.verifier = None @@ -293,7 +303,10 @@ def _populate_attributes(self, token): if 'oauth_token' in token: self._client.client.resource_owner_key = token['oauth_token'] else: - raise ValueError('Response does not contain a token. %s', token) + raise TokenMissing( + 'Response does not contain a token: {resp}'.format(resp=token), + token, + ) if 'oauth_token_secret' in token: self._client.client.resource_owner_secret = ( token['oauth_token_secret'])