16
16
# under the License.
17
17
# pylint: disable=redefined-outer-name,arguments-renamed,fixme
18
18
from tempfile import TemporaryDirectory
19
- from typing import Dict
19
+ from typing import Dict , Optional
20
20
from unittest .mock import patch
21
21
22
22
import fastavro
@@ -526,14 +526,18 @@ def test_write_manifest(
526
526
527
527
528
528
@pytest .mark .parametrize ("format_version" , [1 , 2 ])
529
+ @pytest .mark .parametrize ("parent_snapshot_id" , [19 , None ])
529
530
def test_write_manifest_list (
530
- generated_manifest_file_file_v1 : str , generated_manifest_file_file_v2 : str , format_version : TableVersion
531
+ generated_manifest_file_file_v1 : str ,
532
+ generated_manifest_file_file_v2 : str ,
533
+ format_version : TableVersion ,
534
+ parent_snapshot_id : Optional [int ],
531
535
) -> None :
532
536
io = load_file_io ()
533
537
534
538
snapshot = Snapshot (
535
539
snapshot_id = 25 ,
536
- parent_snapshot_id = 19 ,
540
+ parent_snapshot_id = parent_snapshot_id ,
537
541
timestamp_ms = 1602638573590 ,
538
542
manifest_list = generated_manifest_file_file_v1 if format_version == 1 else generated_manifest_file_file_v2 ,
539
543
summary = Summary (Operation .APPEND ),
@@ -545,12 +549,20 @@ def test_write_manifest_list(
545
549
path = tmp_dir + "/manifest-list.avro"
546
550
output = io .new_output (path )
547
551
with write_manifest_list (
548
- format_version = format_version , output_file = output , snapshot_id = 25 , parent_snapshot_id = 19 , sequence_number = 0
552
+ format_version = format_version ,
553
+ output_file = output ,
554
+ snapshot_id = 25 ,
555
+ parent_snapshot_id = parent_snapshot_id ,
556
+ sequence_number = 0 ,
549
557
) as writer :
550
558
writer .add_manifests (demo_manifest_list )
551
559
new_manifest_list = list (read_manifest_list (io .new_input (path )))
552
560
553
- expected_metadata = {"snapshot-id" : "25" , "parent-snapshot-id" : "19" , "format-version" : str (format_version )}
561
+ if parent_snapshot_id :
562
+ expected_metadata = {"snapshot-id" : "25" , "parent-snapshot-id" : "19" , "format-version" : str (format_version )}
563
+ else :
564
+ expected_metadata = {"snapshot-id" : "25" , "parent-snapshot-id" : "null" , "format-version" : str (format_version )}
565
+
554
566
if format_version == 2 :
555
567
expected_metadata ["sequence-number" ] = "0"
556
568
_verify_metadata_with_fastavro (path , expected_metadata )
0 commit comments