diff options
| author | Antoine Pitrou <solipsis@pitrou.net> | 2010-01-27 21:48:46 (GMT) |
|---|---|---|
| committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-01-27 21:48:46 (GMT) |
| commit | ca5a06aaa968ae767329f8afedbaf17fc337416f (patch) | |
| tree | 1c0f8bfdd0469ce707d41b99371855f6f3f8ae91 /Lib/test/test_io.py | |
| parent | f3330144679453a66b9baf54963462d8cbd095f8 (diff) | |
| download | cpython-ca5a06aaa968ae767329f8afedbaf17fc337416f.zip cpython-ca5a06aaa968ae767329f8afedbaf17fc337416f.tar.gz cpython-ca5a06aaa968ae767329f8afedbaf17fc337416f.tar.bz2 | |
Issue #6939: Fix file I/O objects in the `io` module to keep the original
file position when calling `truncate()`. It would previously change the
file position to the given argument, which goes against the tradition of
`ftruncate()` and other truncation APIs. Patch by Pascal Chambon.
Diffstat (limited to 'Lib/test/test_io.py')
| -rw-r--r-- | Lib/test/test_io.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index f0b38b6..38c58c3 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -87,6 +87,12 @@ class IOTest(unittest.TestCase): test_support.unlink(test_support.TESTFN) def write_ops(self, f): + + self.assertEqual(f.write(b"blah."), 5) + f.truncate(0) + self.assertEqual(f.tell(), 5) + f.seek(0) + self.assertEqual(f.write(b"blah."), 5) self.assertEqual(f.seek(0), 0) self.assertEqual(f.write(b"Hello."), 6) @@ -98,8 +104,9 @@ class IOTest(unittest.TestCase): self.assertEqual(f.write(b"h"), 1) self.assertEqual(f.seek(-1, 2), 13) self.assertEqual(f.tell(), 13) + self.assertEqual(f.truncate(12), 12) - self.assertEqual(f.tell(), 12) + self.assertEqual(f.tell(), 13) self.assertRaises(TypeError, f.seek, 0.0) def read_ops(self, f, buffered=False): @@ -144,7 +151,7 @@ class IOTest(unittest.TestCase): self.assertEqual(f.tell(), self.LARGE + 2) self.assertEqual(f.seek(0, 2), self.LARGE + 2) self.assertEqual(f.truncate(self.LARGE + 1), self.LARGE + 1) - self.assertEqual(f.tell(), self.LARGE + 1) + self.assertEqual(f.tell(), self.LARGE + 2) self.assertEqual(f.seek(0, 2), self.LARGE + 1) self.assertEqual(f.seek(-1, 2), self.LARGE) self.assertEqual(f.read(2), b"x") |
