Beispiel #1
0
class UtilsTests(sdk_test_base.SdkBase, parameterized.TestCase):

  @parameterized.parameters((True, {}, 'fake_token_host'), (True, {
      'token_uri': 'another_token_host'
  }, 'fake_token_host'), (False, {}, properties.VALUES.auth.DEFAULT_TOKEN_HOST),
                            (False, {
                                'token_uri': 'another_token_host'
                            }, 'another_token_host'))
  def testGetEffectiveTokenUri(self, explicitly_set, cred_json, expected_value):
    if explicitly_set:
      properties.VALUES.auth.token_host.Set('fake_token_host')
    self.assertEqual(expected_value, creds.GetEffectiveTokenUri(cred_json))

  @parameterized.parameters(
      (google_auth_credentials.UserCredWithReauth('access_token',
                                                  'refresh_token'), True, True),
      (google_auth_credentials.UserCredWithReauth(
          'access_token', 'refresh_token'), False, True),
      (google_auth_gce.Credentials(), True, True),
      (google_auth_gce.Credentials(), False, False),
      (UnKnownCredentials(), True, False),
      (UnKnownCredentials(), False, False),
  )
  def testIsUserAccountCredentialsGoogleAuth(self, credentials, is_devshell,
                                             expected_result):
    self.StartObjectPatch(
        devshell, 'IsDevshellEnvironment', return_value=is_devshell)
    self.assertEqual(
        creds.IsUserAccountCredentials(credentials), expected_result)

  @parameterized.parameters(
      (client.OAuth2Credentials('token', 'client_id', 'client_secret',
                                'refresh_token', None, None, None), True, True),
      (client.OAuth2Credentials('token', 'client_id', 'client_secret',
                                'refresh_token', None, None,
                                None), False, True),
      (gce.AppAssertionCredentials(), True, True),
      (gce.AppAssertionCredentials(), False, False),
      (UnKnownCredentials(), True, False),
      (UnKnownCredentials(), False, False),
  )
  def testIsUserAccountCredentialsOauth2client(self, credentials, is_devshell,
                                               expected_result):
    self.StartObjectPatch(
        devshell, 'IsDevshellEnvironment', return_value=is_devshell)
    self.assertEqual(
        creds.IsUserAccountCredentials(credentials), expected_result)
 def SetUp(self):
     self.creds = c_google_auth.UserCredWithReauth(
         token='token',
         refresh_token='refresh_token',
         id_token='id_token',
         token_uri='token_uri',
         client_id='client_id',
         client_secret='client_secret',
         scopes=['scope1', 'scope2'],
         quota_project_id='quota_project_id')
     self.http_request = mock.MagicMock(spec=requests.Request())
     self.expected_header = {
         'content-type': 'application/x-www-form-urlencoded'
     }
 def SetUp(self):
     self.creds = c_google_auth.UserCredWithReauth(
         token='token',
         refresh_token='refresh_token',
         id_token='id_token',
         token_uri='token_uri',
         client_id='client_id',
         client_secret='client_secret',
         scopes=['scope1', 'scope2'],
         quota_project_id='quota_project_id')
     self.http_request = mock.MagicMock(spec=requests.Request())
     self.now = datetime.datetime(2020, 1, 1)
     self.StartObjectPatch(_helpers, 'utcnow').return_value = self.now
     self.expected_expiry = datetime.datetime(2020, 1, 1, 1)
    def SetUp(self):
        self.creds = c_google_auth.UserCredWithReauth(
            token='token',
            refresh_token='refresh_token',
            id_token='id_token',
            token_uri='token_uri',
            client_id='client_id',
            client_secret='client_secret',
            scopes=['scope1', 'scope2'],
            quota_project_id='quota_project_id')
        # mock the Http request for refresh
        self.http_request = mock.MagicMock(spec=requests.Request())
        self.http_request.side_effect = [
            _RefreshHttpResponseRequireReauth(),
            _ValidRefreshHttpResponse()
        ]

        # mock the Http for reauth.
        # reauth can only use Http from httplib2.
        self.mock_http_reauth = mock.MagicMock()
        self.StartPatch('googlecloudsdk.core.http.Http',
                        autospec=True,
                        return_value=self.mock_http_reauth)
        self.mock_http_reauth_request = mock.MagicMock()
        self.mock_http_reauth.request = self.mock_http_reauth_request
        # Prepare the mock Http responses.
        reauth_access_token_response = '{"access_token": "access_token_reauth"}'
        challenge_response = ('{"status": "CHALLENGE_REQUIRED", "sessionId": '
                              '"fake_session_id", "challenges": [{"status": '
                              '"READY", "challengeType": "SECURITY_KEY", '
                              '"securityKey": {"challenges": ""}}]}')
        self.mock_http_reauth_request.side_effect = [
            (None, reauth_access_token_response), (None, challenge_response)
        ]

        # mock the security key interface.
        self.mock_security_key = mock.MagicMock()
        self.StartObjectPatch(reauth,
                              'SecurityKeyChallenge',
                              autospec=True,
                              return_value=self.mock_security_key)
        self.mock_security_key.GetName.return_value = 'SECURITY_KEY'
        self.mock_security_key.Execute.return_value = {
            'status': 'AUTHENTICATED',
            'encodedProofOfReauthToken': 'valid_rapt_token'
        }

        # mock interactive mode
        self.StartObjectPatch(reauth, 'InteractiveCheck', return_value=True)
def _MakeEmptyUserCredentialsGoogleAuth():
    return c_google_auth.UserCredWithReauth(None)