Skip to content

Commit 441ea32

Browse files
committed
clean tests
1 parent ee0aa61 commit 441ea32

File tree

1 file changed

+37
-33
lines changed

1 file changed

+37
-33
lines changed

packages/toolbox-core/tests/test_auth_methods.py

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,25 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
import google.auth.exceptions
16-
import pytest
1715
from unittest.mock import patch, AsyncMock, MagicMock
1816

17+
import pytest
18+
import google.auth.exceptions
19+
1920
from toolbox_core import auth_methods
2021

22+
# Constants for test values
23+
MOCK_ASYNC_ID_TOKEN = "test_async_id_token_123"
24+
MOCK_SYNC_ID_TOKEN = "test_sync_id_token_456"
25+
MOCK_PROJECT_ID = "test-project"
26+
27+
# Error Messages
28+
ADC_NOT_FOUND_MSG = "ADC not found"
29+
TOKEN_REFRESH_FAILED_MSG = "Token refresh failed"
30+
SYNC_ADC_NOT_FOUND_MSG = "Sync ADC not found"
31+
SYNC_TOKEN_REFRESH_FAILED_MSG = "Sync token refresh failed"
32+
33+
2134
@pytest.mark.asyncio
2235
@patch("toolbox_core.auth_methods.partial")
2336
@patch("toolbox_core.auth_methods._aiohttp_requests.Request")
@@ -30,22 +43,18 @@ async def test_aget_google_id_token_success(
3043
mock_partial,
3144
):
3245
"""
33-
Test aget_google_id_token successfully retrieves and formats a token using pytest.
46+
Test aget_google_id_token successfully retrieves and formats a token.
3447
"""
35-
# Setup mock for default_async() -> (creds, project_id)
3648
mock_creds_instance = AsyncMock()
37-
mock_creds_instance.id_token = "test_async_id_token_123"
38-
mock_default_async.return_value = (mock_creds_instance, "test-project")
49+
mock_creds_instance.id_token = MOCK_ASYNC_ID_TOKEN
50+
mock_default_async.return_value = (mock_creds_instance, MOCK_PROJECT_ID)
3951

40-
# Setup mock for _aiohttp_requests.Request()
4152
mock_aio_request_instance = MagicMock()
4253
mock_aiohttp_request_class.return_value = mock_aio_request_instance
4354

44-
# Setup mock for Credentials.before_request (class attribute used in partial)
4555
mock_unbound_before_request = MagicMock()
4656
mock_credentials_class.before_request = mock_unbound_before_request
4757

48-
# Setup mock for partial()
4958
mock_partial_object = MagicMock()
5059
mock_partial.return_value = mock_partial_object
5160

@@ -59,22 +68,21 @@ async def test_aget_google_id_token_success(
5968
mock_unbound_before_request, mock_creds_instance
6069
)
6170
assert mock_creds_instance.before_request == mock_partial_object
62-
63-
assert token == "Bearer test_async_id_token_123"
71+
assert token == f"Bearer {MOCK_ASYNC_ID_TOKEN}"
6472

6573

6674
@pytest.mark.asyncio
6775
@patch("toolbox_core.auth_methods.default_async")
6876
async def test_aget_google_id_token_default_credentials_error(mock_default_async):
6977
"""
70-
Test aget_google_id_token when default_async raises DefaultCredentialsError.
78+
Test aget_google_id_token handles DefaultCredentialsError.
7179
"""
7280
mock_default_async.side_effect = google.auth.exceptions.DefaultCredentialsError(
73-
"ADC not found"
81+
ADC_NOT_FOUND_MSG
7482
)
7583

7684
with pytest.raises(
77-
google.auth.exceptions.DefaultCredentialsError, match="ADC not found"
85+
google.auth.exceptions.DefaultCredentialsError, match=ADC_NOT_FOUND_MSG
7886
):
7987
await auth_methods.aget_google_id_token()
8088

@@ -89,20 +97,19 @@ async def test_aget_google_id_token_refresh_error(
8997
mock_aiohttp_request_class,
9098
):
9199
"""
92-
Test aget_google_id_token when creds.refresh raises RefreshError.
93-
The `partial` call should not happen if refresh fails.
100+
Test aget_google_id_token handles RefreshError.
94101
"""
95102
mock_creds_instance = AsyncMock()
96103
mock_creds_instance.refresh.side_effect = google.auth.exceptions.RefreshError(
97-
"Token refresh failed"
104+
TOKEN_REFRESH_FAILED_MSG
98105
)
99-
mock_default_async.return_value = (mock_creds_instance, "test-project")
106+
mock_default_async.return_value = (mock_creds_instance, MOCK_PROJECT_ID)
100107

101108
mock_aio_request_instance = MagicMock()
102109
mock_aiohttp_request_class.return_value = mock_aio_request_instance
103110

104111
with pytest.raises(
105-
google.auth.exceptions.RefreshError, match="Token refresh failed"
112+
google.auth.exceptions.RefreshError, match=TOKEN_REFRESH_FAILED_MSG
106113
):
107114
await auth_methods.aget_google_id_token()
108115

@@ -122,18 +129,15 @@ def test_get_google_id_token_success(
122129
mock_request_class,
123130
):
124131
"""
125-
Test get_google_id_token successfully retrieves and formats a token using pytest.
132+
Test get_google_id_token successfully retrieves and formats a token.
126133
"""
127-
# Setup mock for google.auth.default() -> (credentials, project_id)
128134
mock_creds_instance = MagicMock()
129-
mock_creds_instance.id_token = "test_sync_id_token_456"
130-
mock_google_auth_default.return_value = (mock_creds_instance, "test-project")
135+
mock_creds_instance.id_token = MOCK_SYNC_ID_TOKEN
136+
mock_google_auth_default.return_value = (mock_creds_instance, MOCK_PROJECT_ID)
131137

132-
# Setup mock for AuthorizedSession()
133138
mock_session_instance = MagicMock()
134139
mock_authorized_session_class.return_value = mock_session_instance
135140

136-
# Setup mock for Request()
137141
mock_request_instance = MagicMock()
138142
mock_request_class.return_value = mock_request_instance
139143

@@ -143,20 +147,20 @@ def test_get_google_id_token_success(
143147
mock_authorized_session_class.assert_called_once_with(mock_creds_instance)
144148
mock_request_class.assert_called_once_with(mock_session_instance)
145149
mock_creds_instance.refresh.assert_called_once_with(mock_request_instance)
146-
assert token == "Bearer test_sync_id_token_456"
150+
assert token == f"Bearer {MOCK_SYNC_ID_TOKEN}"
147151

148152

149153
@patch("toolbox_core.auth_methods.google.auth.default")
150154
def test_get_google_id_token_default_credentials_error(mock_google_auth_default):
151155
"""
152-
Test get_google_id_token when google.auth.default raises DefaultCredentialsError.
156+
Test get_google_id_token handles DefaultCredentialsError.
153157
"""
154158
mock_google_auth_default.side_effect = (
155-
google.auth.exceptions.DefaultCredentialsError("Sync ADC not found")
159+
google.auth.exceptions.DefaultCredentialsError(SYNC_ADC_NOT_FOUND_MSG)
156160
)
157161

158162
with pytest.raises(
159-
google.auth.exceptions.DefaultCredentialsError, match="Sync ADC not found"
163+
google.auth.exceptions.DefaultCredentialsError, match=SYNC_ADC_NOT_FOUND_MSG
160164
):
161165
auth_methods.get_google_id_token()
162166

@@ -172,13 +176,13 @@ def test_get_google_id_token_refresh_error(
172176
mock_request_class,
173177
):
174178
"""
175-
Test get_google_id_token when credentials.refresh raises RefreshError.
179+
Test get_google_id_token handles RefreshError.
176180
"""
177181
mock_creds_instance = MagicMock()
178182
mock_creds_instance.refresh.side_effect = google.auth.exceptions.RefreshError(
179-
"Sync token refresh failed"
183+
SYNC_TOKEN_REFRESH_FAILED_MSG
180184
)
181-
mock_google_auth_default.return_value = (mock_creds_instance, "test-project")
185+
mock_google_auth_default.return_value = (mock_creds_instance, MOCK_PROJECT_ID)
182186

183187
mock_session_instance = MagicMock()
184188
mock_authorized_session_class.return_value = mock_session_instance
@@ -187,7 +191,7 @@ def test_get_google_id_token_refresh_error(
187191
mock_request_class.return_value = mock_request_instance
188192

189193
with pytest.raises(
190-
google.auth.exceptions.RefreshError, match="Sync token refresh failed"
194+
google.auth.exceptions.RefreshError, match=SYNC_TOKEN_REFRESH_FAILED_MSG
191195
):
192196
auth_methods.get_google_id_token()
193197

0 commit comments

Comments
 (0)