File tree Expand file tree Collapse file tree 2 files changed +11
-2
lines changed
tests/system/large/functions Expand file tree Collapse file tree 2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 1919import logging
2020import os
2121import random
22+ import re
2223import shutil
2324import string
2425import tempfile
@@ -272,7 +273,10 @@ def provision_bq_managed_function(
272273 # i.e. there are no references to variables or imports outside the
273274 # body.
274275 udf_code = textwrap .dedent (inspect .getsource (func ))
275- udf_code = udf_code [udf_code .index ("def" ) :]
276+ match = re .search (r"^def " , udf_code , flags = re .MULTILINE )
277+ if match is None :
278+ raise ValueError ("The UDF is not defined correctly." )
279+ udf_code = udf_code [match .start () :]
276280
277281 with_connection_clause = (
278282 (
Original file line number Diff line number Diff line change @@ -171,7 +171,12 @@ def featurize(x: int) -> list[float]:
171171def test_managed_function_series_apply (session , dataset_id , scalars_dfs ):
172172 try :
173173
174- @session .udf (dataset = dataset_id , name = prefixer .create_prefix ())
174+ # An explicit name with "def" in it is used to test the robustness of
175+ # the user code extraction logic, which depends on that term.
176+ bq_name = f"{ prefixer .create_prefix ()} _def_to_test_code_extraction"
177+ assert "def" in bq_name , "The substring 'def' was not found in 'bq_name'"
178+
179+ @session .udf (dataset = dataset_id , name = bq_name )
175180 def foo (x : int ) -> bytes :
176181 return bytes (abs (x ))
177182
You can’t perform that action at this time.
0 commit comments