Fixed loading compressed files
This commit is contained in:
parent
b42a090f32
commit
67751d9a3e
@ -72,12 +72,13 @@ class BlendFile:
|
||||
self.is_compressed = False
|
||||
self.raw_filepath = path
|
||||
self.fileobj = fileobj
|
||||
elif magic == GZIP_MAGIC:
|
||||
elif magic[:2] == GZIP_MAGIC:
|
||||
self.is_compressed = True
|
||||
|
||||
log.debug("compressed blendfile detected: %s", path)
|
||||
# Decompress to a temporary file.
|
||||
tmpfile = tempfile.NamedTemporaryFile()
|
||||
fileobj.seek(0, os.SEEK_SET)
|
||||
with gzip.GzipFile(fileobj=fileobj, mode=mode) as gzfile:
|
||||
magic = gzfile.read(len(BLENDFILE_MAGIC))
|
||||
if magic != BLENDFILE_MAGIC:
|
||||
|
||||
BIN
tests/blendfiles/basic_file_compressed.blend
Normal file
BIN
tests/blendfiles/basic_file_compressed.blend
Normal file
Binary file not shown.
@ -196,3 +196,13 @@ class PointerTest(AbstractBlendFileTest):
|
||||
seq.refine_type_from_index(sdna_idx_sequence)
|
||||
self.assertEqual(b'SQBlack', seq[b'name'])
|
||||
self.assertEqual(28, seq[b'type'])
|
||||
|
||||
|
||||
class LoadCompressedTest(AbstractBlendFileTest):
|
||||
def test_loading(self):
|
||||
self.bf = blendfile.BlendFile(self.blendfiles / 'basic_file_compressed.blend')
|
||||
self.assertTrue(self.bf.is_compressed)
|
||||
|
||||
ob = self.bf.code_index[b'OB'][0]
|
||||
name = ob.get((b'id', b'name'))
|
||||
self.assertEqual('OBümlaut', name)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user