def test_tagged_blocks(): blocks = TaggedBlocks([(Tag.LAYER_VERSION, TaggedBlock(key=Tag.LAYER_VERSION, data=IntegerElement(1)))]) check_write_read(blocks) check_write_read(blocks, version=2) check_write_read(blocks, version=2, padding=4) display(blocks) assert blocks.get_data(Tag.LAYER_VERSION) assert blocks.get_data(Tag.LAYER_ID) is None assert len([1 for key in blocks if key == Tag.LAYER_VERSION]) == 1
def test_tagged_blocks(): blocks = TaggedBlocks([(TaggedBlockID.LAYER_VERSION, TaggedBlock(key=TaggedBlockID.LAYER_VERSION, data=IntegerElement(1)))]) check_write_read(blocks) check_write_read(blocks, version=2) check_write_read(blocks, version=2, padding=4)
def test_layer_record(): tagged_blocks = TaggedBlocks([ (TaggedBlockID.LAYER_VERSION, TaggedBlock(key=TaggedBlockID.LAYER_VERSION, data=IntegerElement(0))), ]) check_write_read(LayerRecord()) check_write_read(LayerRecord(name='foo', tagged_blocks=tagged_blocks)) check_write_read(LayerRecord(tagged_blocks=tagged_blocks), version=2)
def _read_body(cls, fp, encoding, version): layer_info = LayerInfo.read(fp, encoding, version) global_layer_mask_info = None if is_readable(fp): global_layer_mask_info = GlobalLayerMaskInfo.read(fp) tagged_blocks = None if is_readable(fp): # For some reason, global tagged blocks aligns 4 byte tagged_blocks = TaggedBlocks.read(fp, version=version, padding=4) return cls(layer_info, global_layer_mask_info, tagged_blocks)
def _read_extra(cls, fp, encoding, version): mask_data = MaskData.read(fp) blending_ranges = LayerBlendingRanges.read(fp) name = read_pascal_string(fp, encoding, padding=4) tagged_blocks = TaggedBlocks.read(fp, version=version, padding=1) return mask_data, blending_ranges, name, tagged_blocks