Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 068eb35

Browse files
author
Jon Wayne Parrott
authored
Don't invoke application default credentials logic when developerKey is provided (googleapis#347)
1 parent 12751ca commit 068eb35

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

googleapiclient/discovery.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,9 @@ def build_from_document(
355355
scopes = list(
356356
service.get('auth', {}).get('oauth2', {}).get('scopes', {}).keys())
357357

358-
# If so, then the we need to setup authentication.
359-
if scopes:
358+
# If so, then the we need to setup authentication if no developerKey is
359+
# specified.
360+
if scopes and not developerKey:
360361
# If the user didn't pass in credentials, attempt to acquire application
361362
# default credentials.
362363
if credentials is None:

tests/test_discovery.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,16 @@ def test_building_with_explicit_http(self):
437437
discovery, base="https://www.googleapis.com/", http=http)
438438
self.assertEquals(plus._http, http)
439439

440+
def test_building_with_developer_key_skips_adc(self):
441+
discovery = open(datafile('plus.json')).read()
442+
plus = build_from_document(
443+
discovery, base="https://www.googleapis.com/", developerKey='123')
444+
self.assertIsInstance(plus._http, httplib2.Http)
445+
# It should not be an AuthorizedHttp, because that would indicate that
446+
# application default credentials were used.
447+
self.assertNotIsInstance(plus._http, google_auth_httplib2.AuthorizedHttp)
448+
449+
440450
class DiscoveryFromHttp(unittest.TestCase):
441451
def setUp(self):
442452
self.old_environ = os.environ.copy()

0 commit comments

Comments
 (0)