Skip to content

Commit 3d13952

Browse files
authored
Fix: Correctly render non-string dbt variables (#1009)
1 parent cccdee2 commit 3d13952

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

sqlmesh/dbt/context.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,7 @@ def _var(name: str, default: t.Optional[t.Any] = None) -> t.Any:
107107

108108
jinja_environment.globals["var"] = _var
109109

110-
rendered_variables = {
111-
k: jinja_environment.from_string(str(v)).render() for k, v in variables.items()
112-
}
110+
rendered_variables = {k: _render_var(v) for k, v in variables.items()}
113111
self.variables = rendered_variables
114112

115113
@property

tests/dbt/test_config.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,17 @@ def test_variables(assert_exp_eq, sushi_test_project):
189189
kwargs = {"context": context}
190190

191191
# Case 2: using a defined variable without a default value
192+
defined_variables["empty_list_var"] = []
193+
defined_variables["jinja_list_var"] = ["{{ 1 + 1 }}"]
192194
defined_variables["bar"] = "{{ 2 * 3 }}"
193195
defined_variables["foo"] = "{{ var('bar') }}"
194196
context.set_and_render_variables(defined_variables, "test_package")
195-
assert context.variables == {"bar": "6", "foo": "6"}
197+
assert context.variables == {
198+
"empty_list_var": [],
199+
"jinja_list_var": ["2"],
200+
"bar": "6",
201+
"foo": "6",
202+
}
196203

197204
sqlmesh_model = model_config.to_sqlmesh(**kwargs)
198205
assert_exp_eq(sqlmesh_model.render_query(), 'SELECT 6 AS "6"')

0 commit comments

Comments
 (0)