|
78 | 78 | AssertRefSnapshotId,
|
79 | 79 | AssertTableUUID,
|
80 | 80 | RemovePropertiesUpdate,
|
| 81 | + RemoveSnapshotsUpdate, |
81 | 82 | RemoveStatisticsUpdate,
|
82 | 83 | SetDefaultSortOrderUpdate,
|
83 | 84 | SetPropertiesUpdate,
|
@@ -793,6 +794,33 @@ def test_update_metadata_set_snapshot_ref(table_v2: Table) -> None:
|
793 | 794 | )
|
794 | 795 |
|
795 | 796 |
|
| 797 | +def test_update_remove_snapshots(table_v2: Table) -> None: |
| 798 | + update = RemoveSnapshotsUpdate( |
| 799 | + snapshot_ids=[3051729675574597004], |
| 800 | + ) |
| 801 | + new_metadata = update_table_metadata(table_v2.metadata, (update,)) |
| 802 | + assert len(new_metadata.snapshots) == 1 |
| 803 | + assert new_metadata.snapshots[0].snapshot_id == 3055729675574597004 |
| 804 | + assert new_metadata.current_snapshot_id == 3055729675574597004 |
| 805 | + assert new_metadata.last_updated_ms > table_v2.metadata.last_updated_ms |
| 806 | + |
| 807 | + |
| 808 | +def test_update_remove_snapshots_doesnt_exist(table_v2: Table) -> None: |
| 809 | + update = RemoveSnapshotsUpdate( |
| 810 | + snapshot_ids=[123], |
| 811 | + ) |
| 812 | + with pytest.raises(ValueError, match="Snapshot with snapshot id 123 does not exist"): |
| 813 | + update_table_metadata(table_v2.metadata, (update,)) |
| 814 | + |
| 815 | + |
| 816 | +def test_update_remove_snapshots_cant_remove_current_snapshot_id(table_v2: Table) -> None: |
| 817 | + update = RemoveSnapshotsUpdate( |
| 818 | + snapshot_ids=[3055729675574597004], |
| 819 | + ) |
| 820 | + with pytest.raises(ValueError, match="Can't remove current snapshot id 3055729675574597004"): |
| 821 | + update_table_metadata(table_v2.metadata, (update,)) |
| 822 | + |
| 823 | + |
796 | 824 | def test_update_metadata_add_update_sort_order(table_v2: Table) -> None:
|
797 | 825 | new_sort_order = SortOrder(order_id=table_v2.sort_order().order_id + 1)
|
798 | 826 | new_metadata = update_table_metadata(
|
|
0 commit comments