@@ -98,11 +98,48 @@ def test_default_state(self):
9898 return_value = datetime .datetime .min + _helpers .REFRESH_THRESHOLD ,
9999 )
100100 @mock .patch ("google.auth.compute_engine._metadata.get" , autospec = True )
101- def test_refresh_success (self , get , utcnow ):
101+ def test_refresh_success_with_service_account_email (self , get , utcnow ):
102+ service_account_email = "[email protected] " 103+ self .credentials .service_account_email = service_account_email
102104 get .side_effect = [
103105 {
104106 # First request is for sevice account info.
105- 107+ "email" : service_account_email ,
108+ "scopes" : ["one" , "two" ],
109+ },
110+ {
111+ # Second request is for the token.
112+ "access_token" : "token" ,
113+ "expires_in" : 500 ,
114+ },
115+ ]
116+
117+ # Refresh credentials
118+ self .credentials .refresh (None )
119+
120+ # Check that the credentials have the token and proper expiration
121+ assert self .credentials .token == "token"
122+ assert self .credentials .expiry == (utcnow () + datetime .timedelta (seconds = 500 ))
123+
124+ # Check the credential info
125+ assert self .credentials .service_account_email == service_account_email
126+ assert self .credentials ._scopes == ["one" , "two" ]
127+
128+ # Check that the credentials are valid (have a token and are not
129+ # expired)
130+ assert self .credentials .valid
131+
132+ @mock .patch (
133+ "google.auth._helpers.utcnow" ,
134+ return_value = datetime .datetime .min + _helpers .REFRESH_THRESHOLD ,
135+ )
136+ @mock .patch ("google.auth.compute_engine._metadata.get" , autospec = True )
137+ def test_refresh_success_with_default_email (self , get , utcnow ):
138+ service_account_email = "[email protected] " 139+ get .side_effect = [
140+ {
141+ # First request is for sevice account info.
142+ "email" : service_account_email ,
106143 "scopes" : ["one" , "two" ],
107144 },
108145 {
0 commit comments