From 35627ddbb29347362effc331dd92b016e24f7611 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 4 Dec 2025 13:02:52 -0800 Subject: [PATCH 1/3] chore(tests): allow expired secret in system tests --- system_tests/system_tests_async/test_default.py | 11 ++++++++++- system_tests/system_tests_sync/test_default.py | 10 +++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/system_tests/system_tests_async/test_default.py b/system_tests/system_tests_async/test_default.py index 32299c059..8f13cda93 100644 --- a/system_tests/system_tests_async/test_default.py +++ b/system_tests/system_tests_async/test_default.py @@ -16,14 +16,23 @@ import pytest from google.auth import _default_async +from google.auth.exceptions import RefreshError EXPECT_PROJECT_ID = os.environ.get("EXPECT_PROJECT_ID") +CREDENTIALS = os.environ.get("GOOGLE_APPLICATION_CREDENTIALS") + @pytest.mark.asyncio async def test_application_default_credentials(verify_refresh): credentials, project_id = _default_async.default_async() + breakpoint() if EXPECT_PROJECT_ID is not None: assert project_id is not None - await verify_refresh(credentials) + try: + await verify_refresh(credentials) + except RefreshError: + # allow expired credentials for explicit user tests + if not CREDENTIALS.endswith("authorized_user.json"): + raise diff --git a/system_tests/system_tests_sync/test_default.py b/system_tests/system_tests_sync/test_default.py index 560ab3284..4c456321a 100644 --- a/system_tests/system_tests_sync/test_default.py +++ b/system_tests/system_tests_sync/test_default.py @@ -15,8 +15,10 @@ import os import google.auth +from google.auth.exceptions import RefreshError EXPECT_PROJECT_ID = os.environ.get("EXPECT_PROJECT_ID") +CREDENTIALS = os.environ.get("GOOGLE_APPLICATION_CREDENTIALS") def test_application_default_credentials(verify_refresh): @@ -25,4 +27,10 @@ def test_application_default_credentials(verify_refresh): if EXPECT_PROJECT_ID is not None: assert project_id is not None - verify_refresh(credentials) + try: + verify_refresh(credentials) + except RefreshError: + # allow expired credentials for explicit_authorized_user tests + # TODO: https://github.com/googleapis/google-auth-library-python/issues/1882 + if not CREDENTIALS.endswith("authorized_user.json"): + raise From 4537a78844776c3d4dc75d3523bd8ca3e35256d1 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 4 Dec 2025 13:07:34 -0800 Subject: [PATCH 2/3] check error string --- system_tests/system_tests_async/test_default.py | 8 ++++---- system_tests/system_tests_sync/test_default.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/system_tests/system_tests_async/test_default.py b/system_tests/system_tests_async/test_default.py index 8f13cda93..655060b1b 100644 --- a/system_tests/system_tests_async/test_default.py +++ b/system_tests/system_tests_async/test_default.py @@ -25,14 +25,14 @@ @pytest.mark.asyncio async def test_application_default_credentials(verify_refresh): credentials, project_id = _default_async.default_async() - breakpoint() if EXPECT_PROJECT_ID is not None: assert project_id is not None try: await verify_refresh(credentials) - except RefreshError: - # allow expired credentials for explicit user tests - if not CREDENTIALS.endswith("authorized_user.json"): + except RefreshError as e: + # allow expired credentials for explicit_authorized_user tests + # TODO: https://github.com/googleapis/google-auth-library-python/issues/1882 + if not CREDENTIALS.endswith("authorized_user.json") or "Token has been expired or revoked" not in str(e): raise diff --git a/system_tests/system_tests_sync/test_default.py b/system_tests/system_tests_sync/test_default.py index 4c456321a..00165f9c2 100644 --- a/system_tests/system_tests_sync/test_default.py +++ b/system_tests/system_tests_sync/test_default.py @@ -29,8 +29,8 @@ def test_application_default_credentials(verify_refresh): try: verify_refresh(credentials) - except RefreshError: + except RefreshError as e: # allow expired credentials for explicit_authorized_user tests # TODO: https://github.com/googleapis/google-auth-library-python/issues/1882 - if not CREDENTIALS.endswith("authorized_user.json"): + if not CREDENTIALS.endswith("authorized_user.json") or "Token has been expired or revoked" not in str(e): raise From 6a7f20c0d732702e8f5a890a3f1e1373e46c55eb Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 4 Dec 2025 13:32:48 -0800 Subject: [PATCH 3/3] make credentials always string --- system_tests/system_tests_async/test_default.py | 4 ++-- system_tests/system_tests_sync/test_default.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/system_tests/system_tests_async/test_default.py b/system_tests/system_tests_async/test_default.py index 655060b1b..dfffba28f 100644 --- a/system_tests/system_tests_async/test_default.py +++ b/system_tests/system_tests_async/test_default.py @@ -18,8 +18,8 @@ from google.auth import _default_async from google.auth.exceptions import RefreshError -EXPECT_PROJECT_ID = os.environ.get("EXPECT_PROJECT_ID") -CREDENTIALS = os.environ.get("GOOGLE_APPLICATION_CREDENTIALS") +EXPECT_PROJECT_ID = os.getenv("EXPECT_PROJECT_ID") +CREDENTIALS = os.getenv("GOOGLE_APPLICATION_CREDENTIALS", "") @pytest.mark.asyncio diff --git a/system_tests/system_tests_sync/test_default.py b/system_tests/system_tests_sync/test_default.py index 00165f9c2..322c57b62 100644 --- a/system_tests/system_tests_sync/test_default.py +++ b/system_tests/system_tests_sync/test_default.py @@ -17,8 +17,8 @@ import google.auth from google.auth.exceptions import RefreshError -EXPECT_PROJECT_ID = os.environ.get("EXPECT_PROJECT_ID") -CREDENTIALS = os.environ.get("GOOGLE_APPLICATION_CREDENTIALS") +EXPECT_PROJECT_ID = os.getenv("EXPECT_PROJECT_ID") +CREDENTIALS = os.getenv("GOOGLE_APPLICATION_CREDENTIALS", "") def test_application_default_credentials(verify_refresh):