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( """