Skip to content

Commit 59302da

Browse files
authored
add test
1 parent 9dbce81 commit 59302da

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

tests/core/test_plan.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4131,3 +4131,71 @@ def test_plan_ignore_cron_flag(make_snapshot):
41314131
],
41324132
)
41334133
]
4134+
4135+
4136+
def test_indirect_change_to_materialized_view_is_breaking(make_snapshot):
4137+
snapshot_a_old = make_snapshot(
4138+
SqlModel(name="a",
4139+
query=parse_one("select 1 as col_a, col_b"),
4140+
kind=ViewKind(materialized=True),
4141+
)
4142+
)
4143+
snapshot_a_old.categorize_as(SnapshotChangeCategory.BREAKING, forward_only=False)
4144+
4145+
snapshot_b_old = make_snapshot(
4146+
SqlModel(
4147+
name="b",
4148+
query=parse_one("select col_a from a"),
4149+
kind=ViewKind(materialized=True),
4150+
),
4151+
nodes={'"a"': snapshot_a_old.model},
4152+
)
4153+
snapshot_b_old.categorize_as(SnapshotChangeCategory.BREAKING, forward_only=False)
4154+
4155+
snapshot_a_new = make_snapshot(
4156+
SqlModel(name="a",
4157+
query=parse_one("select 2 as col_a, col_b"),
4158+
kind=ViewKind(materialized=True),
4159+
)
4160+
)
4161+
4162+
snapshot_a_new.previous_versions = snapshot_a_old.all_versions
4163+
4164+
snapshot_b_new = make_snapshot(
4165+
snapshot_b_old.model,
4166+
nodes={'"a"': snapshot_a_new.model},
4167+
)
4168+
snapshot_b_new.previous_versions = snapshot_b_old.all_versions
4169+
4170+
context_diff = ContextDiff(
4171+
environment="test_environment",
4172+
is_new_environment=True,
4173+
is_unfinalized_environment=False,
4174+
normalize_environment_name=True,
4175+
create_from="prod",
4176+
create_from_env_exists=True,
4177+
added=set(),
4178+
removed_snapshots={},
4179+
modified_snapshots={
4180+
snapshot_a_new.name: (snapshot_a_new, snapshot_a_old),
4181+
snapshot_b_new.name: (snapshot_b_new, snapshot_b_old),
4182+
},
4183+
snapshots={
4184+
snapshot_a_new.snapshot_id: snapshot_a_new,
4185+
snapshot_b_new.snapshot_id: snapshot_b_new,
4186+
},
4187+
new_snapshots={
4188+
snapshot_a_new.snapshot_id: snapshot_a_new,
4189+
snapshot_b_new.snapshot_id: snapshot_b_new,
4190+
},
4191+
previous_plan_id=None,
4192+
previously_promoted_snapshot_ids=set(),
4193+
previous_finalized_snapshots=None,
4194+
previous_gateway_managed_virtual_layer=False,
4195+
gateway_managed_virtual_layer=False,
4196+
environment_statements=[],
4197+
)
4198+
4199+
PlanBuilder(context_diff).build()
4200+
4201+
assert snapshot_b_new.change_category == SnapshotChangeCategory.BREAKING

0 commit comments

Comments
 (0)