@@ -74,6 +74,37 @@ def test_user_agent_format(self):
7474 conn = self ._makeOne ()
7575 self .assertEqual (conn .USER_AGENT , expected_ua )
7676
77+ def test__create_scoped_credentials_with_scoped_credentials (self ):
78+ klass = self ._getTargetClass ()
79+ scoped_creds = object ()
80+ scope = 'google-specific-scope'
81+ credentials = _Credentials (scoped = scoped_creds )
82+
83+ result = klass ._create_scoped_credentials (credentials , scope )
84+ self .assertIs (result , scoped_creds )
85+ self .assertEqual (credentials ._create_scoped_calls , 1 )
86+ self .assertEqual (credentials ._scopes , [scope ])
87+
88+ def test__create_scoped_credentials_without_scope_required (self ):
89+ klass = self ._getTargetClass ()
90+ credentials = _Credentials ()
91+
92+ result = klass ._create_scoped_credentials (credentials , None )
93+ self .assertIs (result , credentials )
94+ self .assertEqual (credentials ._create_scoped_calls , 1 )
95+ self .assertEqual (credentials ._scopes , [])
96+
97+ def test__create_scoped_credentials_non_scoped_credentials (self ):
98+ klass = self ._getTargetClass ()
99+ credentials = object ()
100+ result = klass ._create_scoped_credentials (credentials , None )
101+ self .assertIs (result , credentials )
102+
103+ def test__create_scoped_credentials_no_credentials (self ):
104+ klass = self ._getTargetClass ()
105+ result = klass ._create_scoped_credentials (None , None )
106+ self .assertIsNone (result )
107+
77108
78109class TestJSONConnection (unittest .TestCase ):
79110
@@ -375,16 +406,21 @@ def request(self, **kw):
375406
376407class _Credentials (object ):
377408
378- _scopes = None
379-
380- def __init__ (self , authorized = None ):
409+ def __init__ (self , authorized = None , scoped = None ):
381410 self ._authorized = authorized
411+ self ._scoped = scoped
412+ self ._scoped_required = scoped is not None
382413 self ._create_scoped_calls = 0
414+ self ._scopes = []
383415
384416 def authorize (self , http ):
385417 self ._called_with = http
386418 return self ._authorized
387419
388420 def create_scoped_required (self ):
389421 self ._create_scoped_calls += 1
390- return False
422+ return self ._scoped_required
423+
424+ def create_scoped (self , scope ):
425+ self ._scopes .append (scope )
426+ return self ._scoped
0 commit comments