Skip to content

Commit

Permalink
Adding missing flush in truncate
Browse files Browse the repository at this point in the history
- fixes #412
mrbean-bremen committed Jun 8, 2018

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent c4755b0 commit 246e2c8
Showing 2 changed files with 12 additions and 0 deletions.
1 change: 1 addition & 0 deletions pyfakefs/fake_filesystem.py
Original file line number Diff line number Diff line change
@@ -4549,6 +4549,7 @@ def truncate_wrapper(*args, **kwargs):
if self._append:
self._io.seek(self._read_seek, self._read_whence)
size = io_attr(*args, **kwargs)
self.flush()
if not self.is_stream:
self.file_object.SetSize(size)
buffer_size = len(self._io.getvalue())
11 changes: 11 additions & 0 deletions pyfakefs/tests/fake_open_test.py
Original file line number Diff line number Diff line change
@@ -779,6 +779,17 @@ def test_getsize_after_truncate(self):
f.write('b')
f.truncate()
self.assertEqual(1, self.os.path.getsize(file_path))
self.assertEqual(1, self.os.stat(file_path).st_size)

def test_st_size_after_truncate(self):
# Regression test for #412
file_path = self.make_path('foo')
with self.open(file_path, 'a') as f:
f.write('a')
f.truncate()
f.write('b')
f.truncate()
self.assertEqual(2, self.os.stat(file_path).st_size)

def test_that_read_over_end_does_not_reset_position(self):
# Regression test for #286

0 comments on commit 246e2c8

Please sign in to comment.