Skip to content

Commit 17aa1fd

Browse files
committed
more test fixes
Signed-off-by: Jesse Hodges <hodges.jesse@gmail.com>
1 parent 9591144 commit 17aa1fd

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

sqlmesh/core/plan/builder.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ def __init__(
152152
allow_additive_models if allow_additive_models is not None else []
153153
)
154154
self._enable_preview = enable_preview
155+
self._preview_start_provided = preview_start is not None
155156
self._preview_start = preview_start
156157
self._preview_min_intervals = preview_min_intervals
157158
self._end_bounded = end_bounded
@@ -241,6 +242,8 @@ def execution_time(self) -> TimeLike:
241242

242243
def set_start(self, new_start: TimeLike) -> PlanBuilder:
243244
self._start = new_start
245+
if not self._preview_start_provided and self._forward_only_preview_needed:
246+
self._preview_start = new_start
244247
self.override_start = True
245248
self._latest_plan = None
246249
return self
@@ -262,6 +265,8 @@ def set_effective_from(self, effective_from: t.Optional[TimeLike]) -> PlanBuilde
262265
self._effective_from = effective_from
263266
if effective_from and self._is_dev and not self.override_start:
264267
self._start = effective_from
268+
if not self._preview_start_provided and self._forward_only_preview_needed:
269+
self._preview_start = effective_from
265270
self._latest_plan = None
266271
return self
267272

tests/core/test_plan.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3043,6 +3043,40 @@ def test_forward_only_preview_start_does_not_override_implicit_backfill_start(ma
30433043
]
30443044

30453045

3046+
def test_forward_only_preview_start_follows_implicit_plan_start_updates(make_snapshot):
3047+
context_diff, new_snapshot = _make_forward_only_preview_context_diff(make_snapshot)
3048+
3049+
plan_builder = PlanBuilder(
3050+
context_diff,
3051+
default_start="2025-01-03",
3052+
end="2025-01-04",
3053+
is_dev=True,
3054+
forward_only=True,
3055+
enable_preview=True,
3056+
)
3057+
3058+
assert plan_builder.build().restatements == {
3059+
new_snapshot.snapshot_id: (
3060+
to_timestamp("2025-01-03"),
3061+
to_timestamp("2025-01-05"),
3062+
)
3063+
}
3064+
3065+
assert plan_builder.set_effective_from("2025-01-01").build().restatements == {
3066+
new_snapshot.snapshot_id: (
3067+
to_timestamp("2025-01-01"),
3068+
to_timestamp("2025-01-05"),
3069+
)
3070+
}
3071+
3072+
assert plan_builder.set_start("2025-01-02").build().restatements == {
3073+
new_snapshot.snapshot_id: (
3074+
to_timestamp("2025-01-02"),
3075+
to_timestamp("2025-01-05"),
3076+
)
3077+
}
3078+
3079+
30463080
def test_forward_only_preview_start_does_not_limit_regular_backfill(make_snapshot):
30473081
context_diff, preview_new_snapshot = _make_forward_only_preview_context_diff(make_snapshot)
30483082

0 commit comments

Comments
 (0)