Skip to content

Commit 3f858bd

Browse files
[async] Applied #2500 to async code
1 parent 093ce89 commit 3f858bd

File tree

3 files changed

+34
-52
lines changed

3 files changed

+34
-52
lines changed

test/unit/aio/test_auth_workload_identity_async.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import asyncio
66
import json
77
import logging
8-
import os
98
from base64 import b64decode
109
from unittest import mock
1110
from urllib.parse import parse_qs, urlparse
@@ -409,12 +408,10 @@ async def test_explicit_azure_omits_client_id_if_not_set(fake_azure_metadata_ser
409408

410409

411410
async def test_explicit_azure_uses_explicit_client_id_if_set(
412-
fake_azure_metadata_service,
411+
fake_azure_metadata_service, monkeypatch
413412
):
414-
with mock.patch.dict(
415-
os.environ, {"MANAGED_IDENTITY_CLIENT_ID": "custom-client-id"}
416-
):
417-
auth_class = AuthByWorkloadIdentity(provider=AttestationProvider.AZURE)
418-
await auth_class.prepare(conn=None)
413+
monkeypatch.setenv("MANAGED_IDENTITY_CLIENT_ID", "custom-client-id")
414+
auth_class = AuthByWorkloadIdentity(provider=AttestationProvider.AZURE)
415+
await auth_class.prepare(conn=None)
419416

420417
assert fake_azure_metadata_service.requested_client_id == "custom-client-id"

test/unit/aio/test_connection_async_unit.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import json
99
import logging
10-
import os
1110
import stat
1211
import sys
1312
from contextlib import asynccontextmanager
@@ -193,12 +192,12 @@ def test_is_still_running():
193192
)
194193

195194

196-
async def test_partner_env_var(mock_post_requests):
195+
async def test_partner_env_var(mock_post_requests, monkeypatch):
197196
PARTNER_NAME = "Amanda"
198197

199-
with patch.dict(os.environ, {ENV_VAR_PARTNER: PARTNER_NAME}):
200-
async with fake_db_conn() as conn:
201-
assert conn.application == PARTNER_NAME
198+
monkeypatch.setenv(ENV_VAR_PARTNER, PARTNER_NAME)
199+
async with fake_db_conn() as conn:
200+
assert conn.application == PARTNER_NAME
202201

203202
assert (
204203
mock_post_requests["data"]["CLIENT_ENVIRONMENT"]["APPLICATION"] == PARTNER_NAME

test/unit/aio/test_ocsp.py

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ async def test_ocsp_wo_cache_file(session_manager):
207207
OCSPCache.reset_cache_dir()
208208

209209

210-
async def test_ocsp_fail_open_w_single_endpoint(session_manager):
210+
async def test_ocsp_fail_open_w_single_endpoint(session_manager, monkeypatch):
211211
SnowflakeOCSP.clear_cache()
212212

213213
try:
@@ -216,33 +216,28 @@ async def test_ocsp_fail_open_w_single_endpoint(session_manager):
216216
# File doesn't exist, which is fine for this test
217217
pass
218218

219-
environ["SF_OCSP_TEST_MODE"] = "true"
220-
environ["SF_TEST_OCSP_URL"] = "http://httpbin.org/delay/10"
221-
environ["SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT"] = "5"
219+
monkeypatch.setenv("SF_OCSP_TEST_MODE", "true")
220+
monkeypatch.setenv("SF_TEST_OCSP_URL", "http://httpbin.org/delay/10")
221+
monkeypatch.setenv("SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT", "5")
222222

223223
ocsp = SFOCSP(use_ocsp_cache_server=False)
224224

225-
try:
226-
async with _asyncio_connect("snowflake.okta.com") as connection:
227-
assert await ocsp.validate(
228-
"snowflake.okta.com", connection, session_manager=session_manager
229-
), "Failed to validate: {}".format("snowflake.okta.com")
230-
finally:
231-
del environ["SF_OCSP_TEST_MODE"]
232-
del environ["SF_TEST_OCSP_URL"]
233-
del environ["SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT"]
225+
async with _asyncio_connect("snowflake.okta.com") as connection:
226+
assert await ocsp.validate(
227+
"snowflake.okta.com", connection, session_manager=session_manager
228+
), "Failed to validate: {}".format("snowflake.okta.com")
234229

235230

236231
@pytest.mark.skipif(
237232
ER_OCSP_RESPONSE_CERT_STATUS_REVOKED is None,
238233
reason="No ER_OCSP_RESPONSE_CERT_STATUS_REVOKED is available.",
239234
)
240-
async def test_ocsp_fail_close_w_single_endpoint(session_manager):
235+
async def test_ocsp_fail_close_w_single_endpoint(session_manager, monkeypatch):
241236
SnowflakeOCSP.clear_cache()
242237

243-
environ["SF_OCSP_TEST_MODE"] = "true"
244-
environ["SF_TEST_OCSP_URL"] = "http://httpbin.org/delay/10"
245-
environ["SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT"] = "5"
238+
monkeypatch.setenv("SF_OCSP_TEST_MODE", "true")
239+
monkeypatch.setenv("SF_TEST_OCSP_URL", "http://httpbin.org/delay/10")
240+
monkeypatch.setenv("SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT", "5")
246241

247242
OCSPCache.del_cache_file()
248243

@@ -254,21 +249,16 @@ async def test_ocsp_fail_close_w_single_endpoint(session_manager):
254249
"snowflake.okta.com", connection, session_manager=session_manager
255250
)
256251

257-
try:
258-
assert (
259-
ex.value.errno == ER_OCSP_RESPONSE_FETCH_FAILURE
260-
), "Connection should have failed"
261-
finally:
262-
del environ["SF_OCSP_TEST_MODE"]
263-
del environ["SF_TEST_OCSP_URL"]
264-
del environ["SF_TEST_CA_OCSP_RESPONDER_CONNECTION_TIMEOUT"]
252+
assert (
253+
ex.value.errno == ER_OCSP_RESPONSE_FETCH_FAILURE
254+
), "Connection should have failed"
265255

266256

267-
async def test_ocsp_bad_validity(session_manager):
257+
async def test_ocsp_bad_validity(session_manager, monkeypatch):
268258
SnowflakeOCSP.clear_cache()
269259

270-
environ["SF_OCSP_TEST_MODE"] = "true"
271-
environ["SF_TEST_OCSP_FORCE_BAD_RESPONSE_VALIDITY"] = "true"
260+
monkeypatch.setenv("SF_OCSP_TEST_MODE", "true")
261+
monkeypatch.setenv("SF_TEST_OCSP_FORCE_BAD_RESPONSE_VALIDITY", "true")
272262

273263
try:
274264
OCSPCache.del_cache_file()
@@ -282,12 +272,10 @@ async def test_ocsp_bad_validity(session_manager):
282272
assert await ocsp.validate(
283273
"snowflake.okta.com", connection, session_manager=session_manager
284274
), "Connection should have passed with fail open"
285-
del environ["SF_OCSP_TEST_MODE"]
286-
del environ["SF_TEST_OCSP_FORCE_BAD_RESPONSE_VALIDITY"]
287275

288276

289-
async def test_ocsp_single_endpoint(session_manager):
290-
environ["SF_OCSP_ACTIVATE_NEW_ENDPOINT"] = "True"
277+
async def test_ocsp_single_endpoint(session_manager, monkeypatch):
278+
monkeypatch.setenv("SF_OCSP_ACTIVATE_NEW_ENDPOINT", "True")
291279
SnowflakeOCSP.clear_cache()
292280
ocsp = SFOCSP()
293281
ocsp.OCSP_CACHE_SERVER.NEW_DEFAULT_CACHE_SERVER_BASE_URL = "https://snowflake.preprod3.us-west-2-dev.external-zone.snowflakecomputing.com:8085/ocsp/"
@@ -296,8 +284,6 @@ async def test_ocsp_single_endpoint(session_manager):
296284
"snowflake.okta.com", connection, session_manager=session_manager
297285
), "Failed to validate: {}".format("snowflake.okta.com")
298286

299-
del environ["SF_OCSP_ACTIVATE_NEW_ENDPOINT"]
300-
301287

302288
async def test_ocsp_by_post_method(session_manager):
303289
"""OCSP tests."""
@@ -327,7 +313,7 @@ async def test_ocsp_with_file_cache(tmpdir, session_manager):
327313

328314

329315
async def test_ocsp_with_bogus_cache_files(
330-
tmpdir, random_ocsp_response_validation_cache, session_manager
316+
tmpdir, random_ocsp_response_validation_cache, session_manager, monkeypatch
331317
):
332318
with mock.patch(
333319
"snowflake.connector.ocsp_snowflake.OCSP_RESPONSE_VALIDATION_CACHE",
@@ -337,7 +323,7 @@ async def test_ocsp_with_bogus_cache_files(
337323

338324
"""Attempts to use bogus OCSP response data."""
339325
cache_file_name, target_hosts = await _store_cache_in_file(
340-
tmpdir, session_manager
326+
tmpdir, session_manager, monkeypatch=monkeypatch
341327
)
342328

343329
ocsp = SFOCSP()
@@ -369,7 +355,7 @@ async def test_ocsp_with_bogus_cache_files(
369355

370356

371357
async def test_ocsp_with_outdated_cache(
372-
tmpdir, random_ocsp_response_validation_cache, session_manager
358+
tmpdir, random_ocsp_response_validation_cache, session_manager, monkeypatch
373359
):
374360
with mock.patch(
375361
"snowflake.connector.ocsp_snowflake.OCSP_RESPONSE_VALIDATION_CACHE",
@@ -379,7 +365,7 @@ async def test_ocsp_with_outdated_cache(
379365

380366
"""Attempts to use outdated OCSP response cache file."""
381367
cache_file_name, target_hosts = await _store_cache_in_file(
382-
tmpdir, session_manager
368+
tmpdir, session_manager, monkeypatch=monkeypatch
383369
)
384370

385371
ocsp = SFOCSP()
@@ -410,10 +396,10 @@ async def test_ocsp_with_outdated_cache(
410396
), "must be empty. outdated cache should not be loaded"
411397

412398

413-
async def _store_cache_in_file(tmpdir, session_manager, target_hosts=None):
399+
async def _store_cache_in_file(tmpdir, session_manager, monkeypatch, target_hosts=None):
414400
if target_hosts is None:
415401
target_hosts = TARGET_HOSTS
416-
os.environ["SF_OCSP_RESPONSE_CACHE_DIR"] = str(tmpdir)
402+
monkeypatch.setenv("SF_OCSP_RESPONSE_CACHE_DIR", str(tmpdir))
417403
OCSPCache.reset_cache_dir()
418404
filename = path.join(str(tmpdir), "ocsp_response_cache.json")
419405

0 commit comments

Comments
 (0)