(self)
| 2057 | self.assertEqual(f.read(), b"abc") |
| 2058 | |
| 2059 | def test_truncate_after_write(self): |
| 2060 | # Ensure that truncate preserves the file position after |
| 2061 | # writes longer than the buffer size. |
| 2062 | # Issue: https://bugs.python.org/issue32228 |
| 2063 | self.addCleanup(os_helper.unlink, os_helper.TESTFN) |
| 2064 | with self.open(os_helper.TESTFN, "wb") as f: |
| 2065 | # Fill with some buffer |
| 2066 | f.write(b'\x00' * 10000) |
| 2067 | buffer_sizes = [8192, 4096, 200] |
| 2068 | for buffer_size in buffer_sizes: |
| 2069 | with self.open(os_helper.TESTFN, "r+b", buffering=buffer_size) as f: |
| 2070 | f.write(b'\x00' * (buffer_size + 1)) |
| 2071 | # After write write_pos and write_end are set to 0 |
| 2072 | f.read(1) |
| 2073 | # read operation makes sure that pos != raw_pos |
| 2074 | f.truncate() |
| 2075 | self.assertEqual(f.tell(), buffer_size + 2) |
| 2076 | |
| 2077 | @threading_helper.requires_working_threading() |
| 2078 | @support.requires_resource('cpu') |
nothing calls this directly
no test coverage detected