Skip to content

Commit 6609057

Browse files
authored
test forward-only
1 parent 97f001e commit 6609057

File tree

1 file changed

+73
-5
lines changed

1 file changed

+73
-5
lines changed

tests/core/test_plan.py

Lines changed: 73 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4137,11 +4137,11 @@ def test_indirect_change_to_materialized_view_is_breaking(make_snapshot):
41374137
snapshot_a_old = make_snapshot(
41384138
SqlModel(
41394139
name="a",
4140-
query=parse_one("select 1 as col_a, col_b"),
4140+
query=parse_one("select 1 as col_a"),
41414141
kind=ViewKind(materialized=True),
41424142
)
41434143
)
4144-
snapshot_a_old.categorize_as(SnapshotChangeCategory.BREAKING, forward_only=False)
4144+
snapshot_a_old.categorize_as(SnapshotChangeCategory.BREAKING)
41454145

41464146
snapshot_b_old = make_snapshot(
41474147
SqlModel(
@@ -4151,12 +4151,12 @@ def test_indirect_change_to_materialized_view_is_breaking(make_snapshot):
41514151
),
41524152
nodes={'"a"': snapshot_a_old.model},
41534153
)
4154-
snapshot_b_old.categorize_as(SnapshotChangeCategory.BREAKING, forward_only=False)
4154+
snapshot_b_old.categorize_as(SnapshotChangeCategory.BREAKING)
41554155

41564156
snapshot_a_new = make_snapshot(
41574157
SqlModel(
41584158
name="a",
4159-
query=parse_one("select 2 as col_a, col_b"),
4159+
query=parse_one("select 1 as col_a, 2 as col_b"),
41604160
kind=ViewKind(materialized=True),
41614161
)
41624162
)
@@ -4198,6 +4198,74 @@ def test_indirect_change_to_materialized_view_is_breaking(make_snapshot):
41984198
environment_statements=[],
41994199
)
42004200

4201-
PlanBuilder(context_diff).build()
4201+
PlanBuilder(context_diff, forward_only=False).build()
42024202

42034203
assert snapshot_b_new.change_category == SnapshotChangeCategory.INDIRECT_BREAKING
4204+
4205+
4206+
def test_forward_only_indirect_change_to_materialized_view(make_snapshot):
4207+
snapshot_a_old = make_snapshot(
4208+
SqlModel(
4209+
name="a",
4210+
query=parse_one("select 1 as col_a"),
4211+
)
4212+
)
4213+
snapshot_a_old.categorize_as(SnapshotChangeCategory.BREAKING)
4214+
4215+
snapshot_b_old = make_snapshot(
4216+
SqlModel(
4217+
name="b",
4218+
query=parse_one("select col_a from a"),
4219+
kind=ViewKind(materialized=True),
4220+
),
4221+
nodes={'"a"': snapshot_a_old.model},
4222+
)
4223+
snapshot_b_old.categorize_as(SnapshotChangeCategory.BREAKING)
4224+
4225+
snapshot_a_new = make_snapshot(
4226+
SqlModel(
4227+
name="a",
4228+
query=parse_one("select 1 as col_a, 2 as col_b"),
4229+
)
4230+
)
4231+
4232+
snapshot_a_new.previous_versions = snapshot_a_old.all_versions
4233+
4234+
snapshot_b_new = make_snapshot(
4235+
snapshot_b_old.model,
4236+
nodes={'"a"': snapshot_a_new.model},
4237+
)
4238+
snapshot_b_new.previous_versions = snapshot_b_old.all_versions
4239+
4240+
context_diff = ContextDiff(
4241+
environment="test_environment",
4242+
is_new_environment=True,
4243+
is_unfinalized_environment=False,
4244+
normalize_environment_name=True,
4245+
create_from="prod",
4246+
create_from_env_exists=True,
4247+
added=set(),
4248+
removed_snapshots={},
4249+
modified_snapshots={
4250+
snapshot_a_new.name: (snapshot_a_new, snapshot_a_old),
4251+
snapshot_b_new.name: (snapshot_b_new, snapshot_b_old),
4252+
},
4253+
snapshots={
4254+
snapshot_a_new.snapshot_id: snapshot_a_new,
4255+
snapshot_b_new.snapshot_id: snapshot_b_new,
4256+
},
4257+
new_snapshots={
4258+
snapshot_a_new.snapshot_id: snapshot_a_new,
4259+
snapshot_b_new.snapshot_id: snapshot_b_new,
4260+
},
4261+
previous_plan_id=None,
4262+
previously_promoted_snapshot_ids=set(),
4263+
previous_finalized_snapshots=None,
4264+
previous_gateway_managed_virtual_layer=False,
4265+
gateway_managed_virtual_layer=False,
4266+
environment_statements=[],
4267+
)
4268+
4269+
PlanBuilder(context_diff, forward_only=True).build()
4270+
4271+
assert snapshot_b_new.change_category == SnapshotChangeCategory.INDIRECT_NON_BREAKING

0 commit comments

Comments
 (0)