@@ -1290,6 +1290,60 @@ def test_effective_from(make_snapshot, mocker: MockerFixture):
12901290 assert updated_snapshot .effective_from is None
12911291
12921292
1293+ def test_effective_from_non_evaluatble_model (make_snapshot , mocker : MockerFixture ):
1294+ snapshot = make_snapshot (
1295+ SqlModel (
1296+ name = "a" ,
1297+ kind = "EMBEDDED" ,
1298+ query = parse_one ("select 1, ds FROM b" ),
1299+ start = "2023-01-01" ,
1300+ dialect = "duckdb" ,
1301+ )
1302+ )
1303+ snapshot .categorize_as (SnapshotChangeCategory .BREAKING )
1304+
1305+ updated_snapshot = make_snapshot (
1306+ SqlModel (
1307+ name = "a" ,
1308+ kind = "EMBEDDED" ,
1309+ query = parse_one ("select 2, ds FROM b" ),
1310+ start = "2023-01-01" ,
1311+ dialect = "duckdb" ,
1312+ )
1313+ )
1314+ updated_snapshot .previous_versions = snapshot .all_versions
1315+
1316+ context_diff = ContextDiff (
1317+ environment = "test_environment" ,
1318+ is_new_environment = True ,
1319+ is_unfinalized_environment = False ,
1320+ normalize_environment_name = True ,
1321+ create_from = "prod" ,
1322+ added = set (),
1323+ removed_snapshots = {},
1324+ modified_snapshots = {updated_snapshot .name : (updated_snapshot , snapshot )},
1325+ snapshots = {updated_snapshot .snapshot_id : updated_snapshot },
1326+ new_snapshots = {updated_snapshot .snapshot_id : updated_snapshot },
1327+ previous_plan_id = None ,
1328+ previously_promoted_snapshot_ids = set (),
1329+ previous_finalized_snapshots = None ,
1330+ )
1331+
1332+ schema_differ = DuckDBEngineAdapter .SCHEMA_DIFFER
1333+ plan_builder = PlanBuilder (
1334+ context_diff ,
1335+ schema_differ ,
1336+ forward_only = True ,
1337+ start = "2023-01-01" ,
1338+ end = "2023-03-01" ,
1339+ is_dev = True ,
1340+ )
1341+
1342+ plan_builder .set_effective_from ("2023-02-01" )
1343+ assert plan_builder .build ().effective_from == "2023-02-01"
1344+ assert not updated_snapshot .effective_from
1345+
1346+
12931347def test_new_environment_no_changes (make_snapshot , mocker : MockerFixture ):
12941348 snapshot = make_snapshot (SqlModel (name = "a" , query = parse_one ("select 1, ds" )))
12951349 snapshot .categorize_as (SnapshotChangeCategory .BREAKING )
0 commit comments