Fixed issue reading array items and renamed some stuff
This commit is contained in:
@@ -208,7 +208,8 @@ class StructTest(unittest.TestCase):
|
||||
fileobj = mock.MagicMock(io.BufferedReader)
|
||||
fileobj.read.return_value = b'\x01\x02\x03\x04\xff\xfe\xfd\xfa\x00dummydata'
|
||||
|
||||
val = self.s.field_get(self.FakeHeader(), fileobj, b'path', as_str=False)
|
||||
val = self.s.field_get(self.FakeHeader(), fileobj, b'path',
|
||||
as_str=False, null_terminated=True)
|
||||
self.assertEqual(b'\x01\x02\x03\x04\xff\xfe\xfd\xfa', val)
|
||||
fileobj.seek.assert_called_with(16, os.SEEK_CUR)
|
||||
|
||||
@@ -216,8 +217,7 @@ class StructTest(unittest.TestCase):
|
||||
fileobj = mock.MagicMock(io.BufferedReader)
|
||||
fileobj.read.return_value = b'\x01\x02\x03\x04\xff\xfe\xfd\xfa\x00dummydata'
|
||||
|
||||
val = self.s.field_get(self.FakeHeader(), fileobj, b'path', as_str=False,
|
||||
nil_terminated=False)
|
||||
val = self.s.field_get(self.FakeHeader(), fileobj, b'path', as_str=False)
|
||||
self.assertEqual(b'\x01\x02\x03\x04\xff\xfe\xfd\xfa\x00dummydata', val)
|
||||
fileobj.seek.assert_called_with(16, os.SEEK_CUR)
|
||||
|
||||
|
||||
@@ -28,18 +28,26 @@ class BlendLoadingTest(unittest.TestCase):
|
||||
# Try low level operation to read a property.
|
||||
self.bf.fileobj.seek(ob.file_offset, os.SEEK_SET)
|
||||
loc = ob.dna_type.field_get(self.bf.header, self.bf.fileobj, b'loc')
|
||||
self.assertEqual(loc, [2.0, 3.0, 5.0])
|
||||
self.assertEqual([2.0, 3.0, 5.0], loc)
|
||||
|
||||
# Try low level operation to read an array element.
|
||||
self.bf.fileobj.seek(ob.file_offset, os.SEEK_SET)
|
||||
loc_z = ob.dna_type.field_get(self.bf.header, self.bf.fileobj, (b'loc', 2))
|
||||
self.assertEqual(5.0, loc_z)
|
||||
|
||||
# Try high level operation to read the same property.
|
||||
loc = ob.get(b'loc')
|
||||
self.assertEqual(loc, [2.0, 3.0, 5.0])
|
||||
self.assertEqual([2.0, 3.0, 5.0], loc)
|
||||
|
||||
# Try getting a subproperty.
|
||||
name = ob.get((b'id', b'name'))
|
||||
self.assertEqual('OBümlaut', name)
|
||||
|
||||
loc_z = ob.get((b'loc', 2))
|
||||
self.assertEqual(5.0, loc_z)
|
||||
|
||||
# Try following a pointer.
|
||||
mesh_ptr = ob.get(b'data')
|
||||
mesh = self.bf.block_from_offset[mesh_ptr]
|
||||
mesh = self.bf.block_from_addr[mesh_ptr]
|
||||
mname = mesh.get((b'id', b'name'))
|
||||
self.assertEqual('MECube³', mname)
|
||||
|
||||
Reference in New Issue
Block a user