Skip to content

Commit b49b868

Browse files
pietrodntseaver
andauthored
fix: avoid losing the original '_include_email' parameter in impersonated credentials (#626)
Co-authored-by: Tres Seaver <tseaver@palladion.com>
1 parent cddfdf9 commit b49b868

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

packages/google-auth/google/auth/impersonated_credentials.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,13 +341,15 @@ def from_credentials(self, target_credentials, target_audience=None):
341341
return self.__class__(
342342
target_credentials=self._target_credentials,
343343
target_audience=target_audience,
344+
include_email=self._include_email,
344345
quota_project_id=self._quota_project_id,
345346
)
346347

347348
def with_target_audience(self, target_audience):
348349
return self.__class__(
349350
target_credentials=self._target_credentials,
350351
target_audience=target_audience,
352+
include_email=self._include_email,
351353
quota_project_id=self._quota_project_id,
352354
)
353355

packages/google-auth/tests/test_impersonated_credentials.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,12 +368,13 @@ def test_id_token_from_credential(
368368
assert not credentials.expired
369369

370370
id_creds = impersonated_credentials.IDTokenCredentials(
371-
credentials, target_audience=target_audience
371+
credentials, target_audience=target_audience, include_email=True
372372
)
373373
id_creds = id_creds.from_credentials(target_credentials=credentials)
374374
id_creds.refresh(request)
375375

376376
assert id_creds.token == ID_TOKEN_DATA
377+
assert id_creds._include_email is True
377378

378379
def test_id_token_with_target_audience(
379380
self, mock_donor_credentials, mock_authorizedsession_idtoken
@@ -396,12 +397,15 @@ def test_id_token_with_target_audience(
396397
assert credentials.valid
397398
assert not credentials.expired
398399

399-
id_creds = impersonated_credentials.IDTokenCredentials(credentials)
400+
id_creds = impersonated_credentials.IDTokenCredentials(
401+
credentials, include_email=True
402+
)
400403
id_creds = id_creds.with_target_audience(target_audience=target_audience)
401404
id_creds.refresh(request)
402405

403406
assert id_creds.token == ID_TOKEN_DATA
404407
assert id_creds.expiry == datetime.datetime.fromtimestamp(ID_TOKEN_EXPIRY)
408+
assert id_creds._include_email is True
405409

406410
def test_id_token_invalid_cred(
407411
self, mock_donor_credentials, mock_authorizedsession_idtoken

0 commit comments

Comments
 (0)