Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_tag_parse_bad_csum():
tag = pycdlib.udf.UDFTag()
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
tag.parse(b'\x00\x00\x02\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 0)
assert(str(excinfo.value) == 'Tag checksum does not match!')
def test_pvd_parse_bad_flags():
pvd = pycdlib.udf.UDFPrimaryVolumeDescriptor()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
pvd.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00'*32 + b'\x01\x00\x01\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00' + b'\x00'*128 + b'\x00'*64 + b'\x00'*64 + b'\x00'*8 + b'\x00'*8 + b'\x00'*32 + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00'*32 + b'\x00'*64 + b'\x00\x00\x00\x00\x02\x00' + b'\x00'*22, 0, tag)
assert(str(excinfo.value) == 'Invalid UDF flags')
def test_impl_use_parse_bad_ident():
impl = pycdlib.udf.UDFImplementationUseVolumeDescriptor()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
impl.parse(b'\x00'*16 + b'\x00\x00\x00\x00' + b'\x00*MDF LV Info' + b'\x00'*19 + b'\x00'*460, 0, tag)
assert(str(excinfo.value) == "Implementation Use Identifier not '*UDF LV Info'")
def test_file_entry_parse_bad_record_len():
entry = pycdlib.udf.UDFFileEntry()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
entry.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x01\x00\x00\x00' + b'\x00'*16 + b'\x00'*32 + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 0, None, tag)
assert(str(excinfo.value) == 'File Entry record length is not 0')
def test_tag_parse_bad_crc():
tag = pycdlib.udf.UDFTag()
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
tag.parse(b'\x00\x00\x02\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\xee', 0)
assert(str(excinfo.value) == 'Tag CRC does not match!')
def test_file_ident_record_bad_encoding():
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
entry = pycdlib.udf.UDFFileEntry()
entry.new(0, 'dir', None, 2048)
fi = pycdlib.udf.UDFFileIdentifierDescriptor()
fi.parse(b'\x00'*16 + b'\x01\x00\x08\x01' + b'\x00'*16 + b'\x00\x00\x00', 0, tag, entry)
fi.encoding = 'bad'
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInternalError) as excinfo:
fi.record()
assert(str(excinfo.value) == 'Invalid UDF encoding; this should not happen')
def test_file_set_parse_bad_max_interchange():
fileset = pycdlib.udf.UDFFileSetDescriptor()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInvalidISO) as excinfo:
fileset.parse(b'\x00'*16 + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x03\x00\x02\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00'*64 + b'\x00'*128 + b'\x00'*64 + b'\x00'*32 + b'\x00'*32 + b'\x00'*32 + b'\x00'*16 + b'\x00*OSTA UDF Compliant' + b'\x00'*12 + b'\x00'*16 + b'\x00'*16 + b'\x00'*32, 0, tag)
assert(str(excinfo.value) == 'Only DVD Read-Only disks are supported')
def test_file_entry_parse_initialized_twice():
entry = pycdlib.udf.UDFFileEntry()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
entry.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x01\x00\x00\x00' + b'\x00'*16 + b'\x00'*32 + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 0, None, tag)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInternalError) as excinfo:
entry.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00' + b'\x01\x00\x00\x00' + b'\x00'*16 + b'\x00'*32 + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 0, None, tag)
assert(str(excinfo.value) == 'UDF File Entry already initialized')
def test_alloc_extent_extent_location_parse():
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
alloc = pycdlib.udf.UDFAllocationExtentDescriptor()
alloc.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x00\x00\x00\x00', 0, tag)
assert(alloc.extent_location() == 0)
def test_part_parse_initialized_twice():
part = pycdlib.udf.UDFPartitionVolumeDescriptor()
tag = pycdlib.udf.UDFTag()
tag.new(0, 0)
part.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00+NSR02' + b'\x00'*25 + b'\x00'*128 + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00'*32 + b'\x00'*128 + b'\x00'*156, 0, tag)
with pytest.raises(pycdlib.pycdlibexception.PyCdlibInternalError) as excinfo:
part.parse(b'\x00'*16 + b'\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00+NSR02' + b'\x00'*25 + b'\x00'*128 + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00'*32 + b'\x00'*128 + b'\x00'*156, 0, tag)
assert(str(excinfo.value) == 'UDF Partition Volume Descriptor already initialized')