@@ -919,6 +919,38 @@ def test_versioned_object_incremental_sync():
919919 for _ , bucket in zone_bucket :
920920 zonegroup_bucket_checkpoint (zonegroup_conns , bucket .name )
921921
922+ def test_null_version_id_delete ():
923+ zonegroup = realm .master_zonegroup ()
924+ zonegroup_conns = ZonegroupConns (zonegroup )
925+
926+ zone = zonegroup_conns .rw_zones [0 ]
927+
928+ # create a non-versioned bucket
929+ bucket = zone .create_bucket (gen_bucket_name ())
930+ log .debug ('created bucket=%s' , bucket .name )
931+ zonegroup_meta_checkpoint (zonegroup )
932+ obj = 'obj'
933+
934+ # upload an initial object
935+ key1 = new_key (zone , bucket , obj )
936+ key1 .set_contents_from_string ('' )
937+ log .debug ('created initial version id=%s' , key1 .version_id )
938+ zonegroup_bucket_checkpoint (zonegroup_conns , bucket .name )
939+
940+ # enable versioning
941+ bucket .configure_versioning (True )
942+ zonegroup_meta_checkpoint (zonegroup )
943+
944+ # re-upload the object as a new version
945+ key2 = new_key (zone , bucket , obj )
946+ key2 .set_contents_from_string ('' )
947+ log .debug ('created new version id=%s' , key2 .version_id )
948+ zonegroup_bucket_checkpoint (zonegroup_conns , bucket .name )
949+
950+ bucket .delete_key (obj , version_id = 'null' )
951+
952+ zonegroup_bucket_checkpoint (zonegroup_conns , bucket .name )
953+
922954def test_concurrent_versioned_object_incremental_sync ():
923955 zonegroup = realm .master_zonegroup ()
924956 zonegroup_conns = ZonegroupConns (zonegroup )
0 commit comments