33# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
44#
55
6+ from unittest .mock import patch
7+
68import pytest
9+
710from snowflake .connector .auth import AuthByOauthCode
811from snowflake .connector .network import OAUTH_AUTHORIZATION_CODE
9- from unittest .mock import patch
1012
1113
1214def test_auth_oauth_auth_code_oauth_type ():
@@ -24,6 +26,7 @@ def test_auth_oauth_auth_code_oauth_type():
2426 auth .update_body (body )
2527 assert body ["data" ]["OAUTH_TYPE" ] == "authorization_code"
2628
29+
2730@pytest .mark .parametrize ("rtr_enabled" , [True , False ])
2831def test_auth_oauth_auth_code_single_use_refresh_tokens (rtr_enabled : bool ):
2932 """Verifies that the enable_single_use_refresh_tokens option is plumbed into the authz code request."""
@@ -38,12 +41,26 @@ def test_auth_oauth_auth_code_single_use_refresh_tokens(rtr_enabled: bool):
3841 pkce_enabled = False ,
3942 enable_single_use_refresh_tokens = rtr_enabled ,
4043 )
44+
4145 def fake_get_request_token_response (_ , fields : dict [str , str ]):
4246 if rtr_enabled :
4347 assert fields .get ("enable_single_use_refresh_tokens" ) == "true"
4448 else :
4549 assert "enable_single_use_refresh_tokens" not in fields
4650 return ("access_token" , "refresh_token" )
47- with patch ("snowflake.connector.auth.AuthByOauthCode._do_authorization_request" , return_value = "abc" ):
48- with patch ("snowflake.connector.auth.AuthByOauthCode._get_request_token_response" , side_effect = fake_get_request_token_response ):
49- auth .prepare (conn = None , authenticator = OAUTH_AUTHORIZATION_CODE , service_name = None , account = "acc" , user = "user" )
51+
52+ with patch (
53+ "snowflake.connector.auth.AuthByOauthCode._do_authorization_request" ,
54+ return_value = "abc" ,
55+ ):
56+ with patch (
57+ "snowflake.connector.auth.AuthByOauthCode._get_request_token_response" ,
58+ side_effect = fake_get_request_token_response ,
59+ ):
60+ auth .prepare (
61+ conn = None ,
62+ authenticator = OAUTH_AUTHORIZATION_CODE ,
63+ service_name = None ,
64+ account = "acc" ,
65+ user = "user" ,
66+ )
0 commit comments