From b820831430c5fbc7d187666d8dcc4842af532ca5 Mon Sep 17 00:00:00 2001 From: Iaroslav Zeigerman Date: Mon, 9 Jun 2025 20:54:14 -0700 Subject: [PATCH] Fix: Support overriding of the quoting policy for dbt sources --- sqlmesh/dbt/manifest.py | 8 +++++--- tests/dbt/test_manifest.py | 2 ++ tests/fixtures/dbt/sushi_test/dbt_project.yml | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sqlmesh/dbt/manifest.py b/sqlmesh/dbt/manifest.py index beb0639ed2..05750b43b8 100644 --- a/sqlmesh/dbt/manifest.py +++ b/sqlmesh/dbt/manifest.py @@ -168,9 +168,11 @@ def _load_sources(self) -> None: ) source_config = SourceConfig( - **source_config_dict, - **source_dict, - freshness=freshness.to_dict() if freshness else None, + **{ + **source_dict, + **source_config_dict, + "freshness": freshness.to_dict() if freshness else None, + } ) self._sources_per_package[source.package_name][source_config.config_name] = ( source_config diff --git a/tests/dbt/test_manifest.py b/tests/dbt/test_manifest.py index f53d4b629d..bf64e4b8b3 100644 --- a/tests/dbt/test_manifest.py +++ b/tests/dbt/test_manifest.py @@ -115,6 +115,8 @@ def test_manifest_helper(caplog): assert sources["streaming.order_items"].table_name == "order_items" assert sources["streaming.order_items"].schema_ == "raw" + assert all(s.quoting["identifier"] is False for s in sources.values()) + assert sources["streaming.order_items"].freshness == { "warn_after": {"count": 10 if DBT_VERSION < (1, 9, 5) else 12, "period": "hour"}, "error_after": {"count": 11 if DBT_VERSION < (1, 9, 5) else 13, "period": "hour"}, diff --git a/tests/fixtures/dbt/sushi_test/dbt_project.yml b/tests/fixtures/dbt/sushi_test/dbt_project.yml index d833eaf0c0..1afa7dd2c6 100644 --- a/tests/fixtures/dbt/sushi_test/dbt_project.yml +++ b/tests/fixtures/dbt/sushi_test/dbt_project.yml @@ -35,6 +35,10 @@ seeds: +post-hook: - '{{ log("post-hook") }}' +sources: + +quoting: + identifier: false + vars: top_waiters:limit: 10 'top_waiters:revenue': "revenue"