File tree Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Original file line number Diff line number Diff line change @@ -196,7 +196,14 @@ def _resolve_table(table: str | exp.Table) -> str:
196196 ** kwargs ,
197197 }
198198
199+ if this_model :
200+ render_kwargs ["this_model" ] = this_model
201+
202+ macro_evaluator .locals .update (render_kwargs )
203+
199204 variables = kwargs .pop ("variables" , {})
205+ if variables :
206+ macro_evaluator .locals .setdefault (c .SQLMESH_VARS , {}).update (variables )
200207
201208 expressions = [self ._expression ]
202209 if isinstance (self ._expression , d .Jinja ):
@@ -268,14 +275,6 @@ def _resolve_table(table: str | exp.Table) -> str:
268275 f"Could not parse the rendered jinja at '{ self ._path } '.\n { ex } "
269276 ) from ex
270277
271- if this_model :
272- render_kwargs ["this_model" ] = this_model
273-
274- macro_evaluator .locals .update (render_kwargs )
275-
276- if variables :
277- macro_evaluator .locals .setdefault (c .SQLMESH_VARS , {}).update (variables )
278-
279278 for definition in self ._macro_definitions :
280279 try :
281280 macro_evaluator .evaluate (definition )
Original file line number Diff line number Diff line change @@ -12158,3 +12158,21 @@ def test_grants_empty_values():
1215812158def test_grants_table_type (kind : t .Union [str , _ModelKind ], expected : DataObjectType ):
1215912159 model = create_sql_model ("test_table" , parse_one ("SELECT 1 as id" ), kind = kind )
1216012160 assert model .grants_table_type == expected
12161+
12162+
12163+ def test_model_macro_using_locals_called_from_jinja (assert_exp_eq ) -> None :
12164+ @macro ()
12165+ def execution_date (evaluator ):
12166+ return f"""'{ evaluator .locals .get ("execution_date" )} '"""
12167+
12168+ expressions = d .parse (
12169+ """
12170+ MODEL (name db.table);
12171+
12172+ JINJA_QUERY_BEGIN;
12173+ SELECT {{ execution_date() }} AS col;
12174+ JINJA_END;
12175+ """
12176+ )
12177+ model = load_sql_based_model (expressions )
12178+ assert_exp_eq (model .render_query (), '''SELECT '1970-01-01' AS "col"''' )
You can’t perform that action at this time.
0 commit comments