Skip to content

Commit 3f8df02

Browse files
authored
#36: Fix validation of column names for variadic UDFs (#37)
1 parent 487edc2 commit 3f8df02

File tree

2 files changed

+29
-33
lines changed

2 files changed

+29
-33
lines changed

exasol_udf_mock_python/mock_meta_data.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,27 @@ def __init__(
1414
output_columns: List[Column],
1515
output_type: str,
1616
is_variadic_input: bool = False,
17-
script_name: str="TEST_UDF",
18-
script_schema: str="TEST_SCHEMA",
19-
current_user: str="sys",
20-
current_schema: str="TEST_SCHEMA",
21-
scope_user: str="sys",
22-
connection_id: str="123123",
23-
database_name: str="TEST_DB",
24-
database_version: str="7.0.0",
25-
node_count: int="1",
26-
node_id: int="0",
27-
vm_id: int="123",
28-
session_id: int="123456789",
29-
statement_id: int="123456789",
30-
memory_limit: int=4*1073741824,
31-
):
17+
script_name: str = "TEST_UDF",
18+
script_schema: str = "TEST_SCHEMA",
19+
current_user: str = "sys",
20+
current_schema: str = "TEST_SCHEMA",
21+
scope_user: str = "sys",
22+
connection_id: str = "123123",
23+
database_name: str = "TEST_DB",
24+
database_version: str = "7.0.0",
25+
node_count: int = "1",
26+
node_id: int = "0",
27+
vm_id: int = "123",
28+
session_id: int = "123456789",
29+
statement_id: int = "123456789",
30+
memory_limit: int = 4 * 1073741824,
31+
):
3232

3333
assert input_type.upper() in ["SET", "SCALAR"]
3434
assert output_type.upper() in ["EMITS", "RETURNS"]
3535
if is_variadic_input:
36-
for i in range(len(input_columns)):
37-
assert str(i+1) == str(input_columns[i].name)
36+
assert all([str(i) == str(column.name)
37+
for i, column in enumerate(input_columns)])
3838

3939
self._script_language = "PYTHON3"
4040
self._script_name = script_name

tests/test_executor_context_set_emits.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,9 @@ def run(ctx):
378378
ctx.emit(ctx[1])
379379
ctx.emit(ctx["2"])
380380

381-
input_columns = [Column("1", int, "INTEGER"),
382-
Column("2", int, "INTEGER"),
383-
Column("3", int, "INTEGER")]
381+
input_columns = [Column("0", int, "INTEGER"),
382+
Column("1", int, "INTEGER"),
383+
Column("2", int, "INTEGER")]
384384
output_columns = [Column("o1", int, "INTEGER")]
385385
meta = MockMetaData(
386386
script_code_wrapper_function=udf_wrapper,
@@ -443,19 +443,15 @@ def run(ctx):
443443

444444
input_columns = [Column("1", int, "INTEGER")]
445445
output_columns = [Column("o1", int, "INTEGER")]
446-
meta = MockMetaData(
447-
script_code_wrapper_function=udf_wrapper,
448-
input_type="SET",
449-
input_columns=input_columns,
450-
output_type="EMITS",
451-
output_columns=output_columns,
452-
is_variadic_input=True)
453-
454-
input_data = [(1,)]
455-
exa = MockExaEnvironment(meta)
456-
executor = UDFMockExecutor()
457-
with self.assertRaises(RuntimeError):
458-
result = executor.run([Group(input_data)], exa)
446+
with self.assertRaises(AssertionError):
447+
meta = MockMetaData(
448+
script_code_wrapper_function=udf_wrapper,
449+
input_type="SET",
450+
input_columns=input_columns,
451+
output_type="EMITS",
452+
output_columns=output_columns,
453+
is_variadic_input=True)
454+
459455

460456
def test_invalid_variadic_input_columns_name(self):
461457
def udf_wrapper():

0 commit comments

Comments
 (0)