Skip to content

Commit 187104c

Browse files
committed
tests
1 parent 6e0a5cc commit 187104c

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed

tests/test_mindsdb/test_jobs.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,26 @@ def test_drop_job(self):
109109
if_exists=True
110110
)
111111
assert str(ast) == str(expected_ast)
112+
assert ast.to_tree() == expected_ast.to_tree()
113+
114+
def test_create_job_with_variable(self):
115+
"""Test that @ prefix is preserved in job query_str"""
116+
query_str = "INSERT INTO tbl SELECT * FROM source WHERE date > @last_date and @@condition is True"
117+
sql = f"""
118+
CREATE JOB myjob (
119+
{query_str}
120+
)
121+
EVERY hour
122+
"""
123+
ast = parse_sql(sql)
124+
125+
expected_ast = CreateJob(
126+
name=Identifier('myjob'),
127+
query_str=query_str,
128+
repeat_str="hour"
129+
)
130+
131+
# Check that query_str preserves the @ sign
132+
assert ast.query_str == query_str
133+
assert str(ast) == str(expected_ast)
112134
assert ast.to_tree() == expected_ast.to_tree()

tests/test_mindsdb/test_variables.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,35 @@ def test_mysql(self):
6060

6161
assert str(ast).lower() == sql.lower()
6262
assert str(ast) == str(expected_ast)
63+
64+
def test_variables_in_select(self):
65+
"""Test multiple variables in single query"""
66+
sql = "SELECT @var1, @var2 FROM tbl WHERE x = @var3 AND y = @@system_var"
67+
ast = parse_sql(sql)
68+
69+
expected_ast = Select(
70+
targets=[Variable("var1"), Variable("var2")],
71+
from_table=Identifier("tbl"),
72+
where=BinaryOperation(
73+
op="AND",
74+
args=[
75+
BinaryOperation(
76+
op="=",
77+
args=[Identifier("x"), Variable("var3")]
78+
),
79+
BinaryOperation(
80+
op="=",
81+
args=[Identifier("y"), Variable("system_var", is_system_var=True)]
82+
)
83+
]
84+
)
85+
)
86+
87+
# Verify the string representation preserves all @ signs
88+
assert ast.to_tree() == expected_ast.to_tree()
89+
result = str(ast)
90+
assert result == str(expected_ast)
91+
assert "@var1" in result
92+
assert "@var2" in result
93+
assert "@var3" in result
94+
assert "@@system_var" in result

tests/test_mindsdb/test_views.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,33 @@ def test_alter_view_nofrom(self):
5555
assert str(ast) == str(expected_ast)
5656
assert ast.to_tree() == expected_ast.to_tree()
5757

58+
def test_create_view_with_variables(self):
59+
"""Test multiple variables in view query"""
60+
query_str = "SELECT @var1, @@sys_var FROM tbl WHERE x = @var2"
61+
sql = f"CREATE VIEW v1 AS ({query_str})"
62+
ast = parse_sql(sql)
63+
64+
# Check that all variables preserve their prefixes
65+
assert '@var1' in ast.query_str
66+
assert '@@sys_var' in ast.query_str
67+
assert '@var2' in ast.query_str
68+
assert ast.query_str == query_str
69+
70+
def test_alter_view_with_variableы(self):
71+
"""Test that @ prefix is preserved in ALTER VIEW query_str"""
72+
query_str = "SELECT @var1, @@sys_var FROM tbl WHERE x = @var2"
73+
sql = f"ALTER VIEW myview AS ({query_str})"
74+
ast = parse_sql(sql)
75+
76+
expected_ast = AlterView(
77+
name=Identifier('myview'),
78+
query_str=query_str
79+
)
80+
81+
assert ast.query_str == query_str
82+
assert str(ast) == str(expected_ast)
83+
assert ast.to_tree() == expected_ast.to_tree()
84+
5885
# def test_create_dataset_full(self):
5986
# sql = "CREATE DATASET my_view FROM integr AS ( SELECT * FROM pred )"
6087
# ast = parse_sql(sql)

0 commit comments

Comments
 (0)