Skip to content

Commit 7891e26

Browse files
quote macro; fix tests
1 parent 57e3fe8 commit 7891e26

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

sqlmesh/utils/jinja.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ def extract_error_details(ex: Exception) -> str:
682682
if frame.f_code.co_name == "_invoke":
683683
macro = frame.f_locals.get("self")
684684
if isinstance(macro, Macro):
685-
error_details += f" in macro: {macro.name}\n"
685+
error_details += f" in macro: '{macro.name}'\n"
686686
break
687687
except:
688688
# to fall back to the generic error message if frame analysis fails

tests/core/test_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ def test_jinja_macro_undefined_variable_error(tmp_path: pathlib.Path):
671671
error_message = str(exc_info.value)
672672
assert "Failed to load model" in error_message
673673
assert "Could not render or parse jinja for" in error_message
674-
assert "Undefined macro/variable: 'target' in macro: generate_select" in error_message
674+
assert "Undefined macro/variable: 'target' in macro: 'generate_select'" in error_message
675675

676676

677677
def test_clear_caches(tmp_path: pathlib.Path):

tests/dbt/test_model.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,25 @@ def test_load_microbatch_with_ref_no_filter(
582582
)
583583

584584

585+
@pytest.mark.slow
585586
def test_dbt_jinja_macro_undefined_variable_error(create_empty_project):
586587
project_dir, model_dir = create_empty_project()
587588

589+
dbt_profile_config = {
590+
"test": {
591+
"outputs": {
592+
"duckdb": {
593+
"type": "duckdb",
594+
"path": str(project_dir.parent / "dbt_data" / "main.db"),
595+
}
596+
},
597+
"target": "duckdb",
598+
}
599+
}
600+
db_profile_file = project_dir / "profiles.yml"
601+
with open(db_profile_file, "w", encoding="utf-8") as f:
602+
YAML().dump(dbt_profile_config, f)
603+
588604
macros_dir = project_dir / "macros"
589605
macros_dir.mkdir()
590606

@@ -616,4 +632,4 @@ def test_dbt_jinja_macro_undefined_variable_error(create_empty_project):
616632
error_message = str(exc_info.value)
617633
assert "Failed to update model schemas" in error_message
618634
assert "Could not render or parse jinja for" in error_message
619-
assert "Undefined macro/variable: 'columns' in macro: select_columns" in error_message
635+
assert "Undefined macro/variable: 'columns' in macro: 'select_columns'" in error_message

0 commit comments

Comments
 (0)