Skip to content

Commit 524db2e

Browse files
committed
fix(file_utils): overload mmap.mmap size() function to work with File built from byte arrays in unit tests.
1 parent 4982c33 commit 524db2e

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

unblob/file_utils.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,20 @@ def seek(self, pos: int, whence: int = os.SEEK_SET) -> int:
3939
raise SeekError from e
4040
return self.tell()
4141

42+
def size(self) -> int:
43+
size = 0
44+
try:
45+
size = super().size()
46+
except OSError:
47+
# the file was built with from_bytes() so it's not on disk,
48+
# triggering an OSError on fstat() call
49+
current_offset = self.tell()
50+
self.seek(0, io.SEEK_END)
51+
size = self.tell()
52+
self.seek(current_offset, io.SEEK_SET)
53+
finally:
54+
return size
55+
4256
def __enter__(self):
4357
return self
4458

0 commit comments

Comments
 (0)