File tree Expand file tree Collapse file tree 2 files changed +29
-8
lines changed
Expand file tree Collapse file tree 2 files changed +29
-8
lines changed Original file line number Diff line number Diff line change @@ -239,17 +239,21 @@ def _resolve_table(table: str | exp.Table) -> str:
239239 logger .debug (
240240 f"Rendered Jinja expression for model '{ self ._model_fqn } ' at '{ self ._path } ': '{ rendered_expression } '"
241241 )
242- if rendered_expression .strip ():
242+ except ParsetimeAdapterCallError :
243+ raise
244+ except Exception as ex :
245+ raise ConfigError (f"Could not render jinja at '{ self ._path } '.\n { ex } " ) from ex
246+
247+ if rendered_expression .strip ():
248+ try :
243249 expressions = [e for e in parse (rendered_expression , read = self ._dialect ) if e ]
244250
245251 if not expressions :
246252 raise ConfigError (f"Failed to parse an expression:\n { self ._expression } " )
247- except ParsetimeAdapterCallError :
248- raise
249- except Exception as ex :
250- raise ConfigError (
251- f"Could not render or parse jinja at '{ self ._path } '.\n { ex } "
252- ) from ex
253+ except Exception as ex :
254+ raise ConfigError (
255+ f"Could not parse the rendered jinja at '{ self ._path } '.\n { ex } "
256+ ) from ex
253257
254258 if this_model :
255259 render_kwargs ["this_model" ] = this_model
Original file line number Diff line number Diff line change @@ -8588,6 +8588,23 @@ def test_comments_in_jinja_query():
85888588 model .render_query ()
85898589
85908590
8591+ def test_jinja_render_parse_error ():
8592+ expressions = d .parse (
8593+ """
8594+ MODEL (name db.test_model);
8595+
8596+ JINJA_QUERY_BEGIN;
8597+ {{ unknown_macro() }}
8598+ JINJA_END;
8599+ """
8600+ )
8601+
8602+ model = load_sql_based_model (expressions )
8603+
8604+ with pytest .raises (ConfigError , match = r"Could not render jinja" ):
8605+ model .render_query ()
8606+
8607+
85918608def test_jinja_render_debug_logging (caplog ):
85928609 """Test that rendered Jinja expressions are logged for debugging."""
85938610 import logging
@@ -8609,7 +8626,7 @@ def test_jinja_render_debug_logging(caplog):
86098626 model = load_sql_based_model (expressions )
86108627
86118628 # Attempt to render - this should fail due to invalid SQL syntax
8612- with pytest .raises (ConfigError , match = r"Could not render or parse jinja" ):
8629+ with pytest .raises (ConfigError , match = r"Could not parse the rendered jinja" ):
86138630 model .render_query ()
86148631
86158632 # Check that the rendered Jinja was logged
You can’t perform that action at this time.
0 commit comments