@@ -1996,6 +1996,47 @@ def test_unrestorable_snapshot(state_sync: EngineAdapterStateSync, make_snapshot
19961996 assert not actual_snapshots [new_forward_only_snapshot .snapshot_id ].unrestorable
19971997
19981998
1999+ def test_unrestorable_snapshot_target_not_forward_only (
2000+ state_sync : EngineAdapterStateSync , make_snapshot : t .Callable
2001+ ):
2002+ snapshot = make_snapshot (
2003+ SqlModel (
2004+ name = "test_snapshot" ,
2005+ query = parse_one ("select 1, ds" ),
2006+ cron = "@daily" ,
2007+ ),
2008+ )
2009+ snapshot .categorize_as (SnapshotChangeCategory .BREAKING , forward_only = True )
2010+ snapshot .version = "a"
2011+
2012+ assert not snapshot .unpaused_ts
2013+ state_sync .push_snapshots ([snapshot ])
2014+
2015+ unpaused_dt = "2022-01-01"
2016+ state_sync .unpause_snapshots ([snapshot ], unpaused_dt )
2017+
2018+ actual_snapshot = state_sync .get_snapshots ([snapshot ])[snapshot .snapshot_id ]
2019+ assert actual_snapshot .unpaused_ts
2020+ assert actual_snapshot .unpaused_ts == to_timestamp (unpaused_dt )
2021+
2022+ updated_snapshot = make_snapshot (
2023+ SqlModel (name = "test_snapshot" , query = parse_one ("select 2, ds" ), cron = "@daily" )
2024+ )
2025+ updated_snapshot .categorize_as (SnapshotChangeCategory .BREAKING , forward_only = False )
2026+ updated_snapshot .version = "a"
2027+
2028+ assert not updated_snapshot .unpaused_ts
2029+ state_sync .push_snapshots ([updated_snapshot ])
2030+ state_sync .unpause_snapshots ([updated_snapshot ], unpaused_dt )
2031+
2032+ actual_snapshots = state_sync .get_snapshots ([snapshot , updated_snapshot ])
2033+ assert not actual_snapshots [snapshot .snapshot_id ].unpaused_ts
2034+ assert actual_snapshots [updated_snapshot .snapshot_id ].unpaused_ts == to_timestamp (unpaused_dt )
2035+
2036+ assert actual_snapshots [snapshot .snapshot_id ].unrestorable
2037+ assert not actual_snapshots [updated_snapshot .snapshot_id ].unrestorable
2038+
2039+
19992040def test_unpause_snapshots_remove_intervals (
20002041 state_sync : EngineAdapterStateSync , make_snapshot : t .Callable
20012042):
0 commit comments