From 2ee7f150261916af16dbc7d5dd10dfd20259e1f1 Mon Sep 17 00:00:00 2001 From: Tyler Thomas Date: Thu, 22 Oct 2026 21:41:27 -0600 Subject: [PATCH] fix(audits): pass macros to last audit in load_multiple_audits Signed-off-by: Tyler Thomas --- sqlmesh/core/audit/definition.py | 3 +++ tests/core/test_audit.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/sqlmesh/core/audit/definition.py b/sqlmesh/core/audit/definition.py index 4c90151ee4..13eb9d3219 100644 --- a/sqlmesh/core/audit/definition.py +++ b/sqlmesh/core/audit/definition.py @@ -528,6 +528,9 @@ def load_multiple_audits( yield load_audit( expressions=audit_block, path=path, + module_path=module_path, + macros=macros, + jinja_macros=jinja_macros, dialect=dialect, default_catalog=default_catalog, variables=variables, diff --git a/tests/core/test_audit.py b/tests/core/test_audit.py index b5226563b5..9a03a266ff 100644 --- a/tests/core/test_audit.py +++ b/tests/core/test_audit.py @@ -310,6 +310,37 @@ def test_load_multiple(assert_exp_eq): ) +def test_load_multiple_standalone_with_macros(): + expressions = parse( + """ + AUDIT ( + name my_audit, + standalone true, + ); + + JINJA_STATEMENT_BEGIN; + {{ test_jinja_macro() }} + JINJA_END; + + SELECT @test_macro() FROM db.table + """ + ) + + jinja_macros = JinjaMacroRegistry() + jinja_macros.add_macros( + MacroExtractor().extract("{% macro test_jinja_macro() %}{% endmacro %}") + ) + + (audit,) = load_multiple_audits( + expressions, + macros={"test_macro": Executable(payload="def test_macro(evaluator):\n return 1")}, + jinja_macros=jinja_macros, + ) + + assert "test_macro" in audit.python_env + assert "test_jinja_macro" in audit.jinja_macros.root_macros + + def test_load_with_dictionary_defaults(): expressions = parse( """