Skip to content

Commit 05a1670

Browse files
committed
Avoid SourceConfig has no freshness error
1 parent 43ffb98 commit 05a1670

2 files changed

Lines changed: 15 additions & 8 deletions

File tree

sqlmesh/dbt/manifest.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,16 +154,21 @@ def _load_all(self) -> None:
154154
def _load_sources(self) -> None:
155155
for source in self._manifest.sources.values():
156156
# starting in dbt-core 1.9.5, freshness can be set in both source and source config
157-
freshness = merge_freshness(source.freshness, source.config.freshness)
158-
159-
config_source_dict = _config(source)
160-
config_source_dict.pop("freshness", None)
161-
162157
source_dict = source.to_dict()
163158
source_dict.pop("freshness", None)
164159

160+
source_config_dict = _config(source)
161+
source_config_dict.pop("freshness", None)
162+
163+
source_config_freshness = getattr(source.config, "freshness", None)
164+
freshness = (
165+
merge_freshness(source.freshness, source_config_freshness)
166+
if source_config_freshness
167+
else source.freshness
168+
)
169+
165170
source_config = SourceConfig(
166-
**config_source_dict,
171+
**source_config_dict,
167172
**source_dict,
168173
freshness=freshness.to_dict() if freshness else None,
169174
)

tests/dbt/test_manifest.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from sqlmesh.dbt.manifest import ManifestHelper
1010
from sqlmesh.dbt.profile import Profile
1111
from sqlmesh.dbt.builtin import Api, _relation_info_to_relation
12+
from sqlmesh.dbt.util import DBT_VERSION
1213
from sqlmesh.utils.jinja import MacroReference
1314

1415
pytestmark = pytest.mark.dbt
@@ -113,10 +114,11 @@ def test_manifest_helper(caplog):
113114
assert sources["streaming.orders"].schema_ == "raw"
114115
assert sources["streaming.order_items"].table_name == "order_items"
115116
assert sources["streaming.order_items"].schema_ == "raw"
117+
116118
assert sources["streaming.order_items"].freshness == {
117-
"error_after": {"count": 13, "period": "hour"},
119+
"warn_after": {"count": 10 if DBT_VERSION < (1, 9, 5) else 12, "period": "hour"},
120+
"error_after": {"count": 11 if DBT_VERSION < (1, 9, 5) else 13, "period": "hour"},
118121
"filter": None,
119-
"warn_after": {"count": 12, "period": "hour"},
120122
}
121123

122124

0 commit comments

Comments
 (0)