@@ -158,22 +158,28 @@ def get_secret():
158158 reason = "Secret API is only supported on Snowflake server environment" ,
159159)
160160def test_get_wif_token_udf (session , db_parameters ):
161- def get_wif ():
162- token = get_wif_token ("cred" , db_parameters ["wif_audience" ])
163- return len (token ) > 0
164-
165161 try :
162+ wif_audience = db_parameters ["wif_audience" ]
163+
164+ def get_wif ():
165+ return get_wif_token ("cred" , wif_audience )
166+
166167 get_wif_udf = session .udf .register (
167168 get_wif ,
168- return_type = BooleanType (),
169+ return_type = StringType (),
169170 packages = ["snowflake-snowpark-python" ],
170171 external_access_integrations = [
171172 db_parameters ["external_access_integration4" ]
172173 ],
173174 secrets = {"cred" : f"{ db_parameters ['external_access_key4' ]} " },
174175 )
175176 df = session .create_dataframe ([[1 ], [2 ]]).to_df ("x" )
176- Utils .check_answer (df .select (get_wif_udf ()), [Row (True ), Row (True )])
177+ rows = df .select (get_wif_udf ()).collect ()
178+ for row in rows :
179+ token = row [0 ]
180+ assert (
181+ isinstance (token , str ) and len (token .split ("." )) == 3
182+ ), f"expected JWT-shaped token (header.payload.signature), got { token !r} "
177183 except KeyError :
178184 pytest .skip ("External Access Integration is not supported on the deployment." )
179185
@@ -183,22 +189,26 @@ def get_wif():
183189 reason = "Secret API is only supported on Snowflake server environment" ,
184190)
185191def test_get_wif_token_sproc (session , db_parameters ):
186- def get_wif_in_sproc (session_ ):
187- token = get_wif_token ("cred" , db_parameters ["wif_audience" ])
188- return len (token ) > 0
189-
190192 try :
193+ wif_audience = db_parameters ["wif_audience" ]
194+
195+ def get_wif_in_sproc (session_ ):
196+ return get_wif_token ("cred" , wif_audience )
197+
191198 get_wif_sp = session .sproc .register (
192199 get_wif_in_sproc ,
193- return_type = BooleanType (),
200+ return_type = StringType (),
194201 packages = ["snowflake-snowpark-python" ],
195202 external_access_integrations = [
196203 db_parameters ["external_access_integration4" ]
197204 ],
198205 secrets = {"cred" : f"{ db_parameters ['external_access_key4' ]} " },
199206 anonymous = True ,
200207 )
201- assert get_wif_sp ()
208+ token = get_wif_sp ()
209+ assert (
210+ isinstance (token , str ) and len (token .split ("." )) == 3
211+ ), f"expected JWT-shaped token (header.payload.signature), got { token !r} "
202212 except KeyError :
203213 pytest .skip ("External Access Integration is not supported on the deployment." )
204214
0 commit comments