Raise a helpful exception when trying to refresh credentials without a refresh token (#262)
diff --git a/google/oauth2/credentials.py b/google/oauth2/credentials.py
index 24b3a3e..8e2a7f8 100644
--- a/google/oauth2/credentials.py
+++ b/google/oauth2/credentials.py
@@ -38,6 +38,7 @@
from google.auth import _helpers
from google.auth import credentials
+from google.auth import exceptions
from google.oauth2 import _client
@@ -120,6 +121,15 @@
@_helpers.copy_docstring(credentials.Credentials)
def refresh(self, request):
+ if (self._refresh_token is None or
+ self._token_uri is None or
+ self._client_id is None or
+ self._client_secret is None):
+ raise exceptions.RefreshError(
+ 'The credentials do not contain the necessary fields need to '
+ 'refresh the access token. You must specify refresh_token, '
+ 'token_uri, client_id, and client_secret.')
+
access_token, refresh_token, expiry, grant_response = (
_client.refresh_grant(
request, self._token_uri, self._refresh_token, self._client_id,