Commit c5ae86b9 authored by Antoine Pitrou's avatar Antoine Pitrou

Re-enable testing of builtin open() in test_bufio in test_largefile

parent 47a5f480
...@@ -68,9 +68,12 @@ class CBufferSizeTest(BufferSizeTest): ...@@ -68,9 +68,12 @@ class CBufferSizeTest(BufferSizeTest):
class PyBufferSizeTest(BufferSizeTest): class PyBufferSizeTest(BufferSizeTest):
open = staticmethod(pyio.open) open = staticmethod(pyio.open)
class BuiltinBufferSizeTest(BufferSizeTest):
open = open
def test_main(): def test_main():
support.run_unittest(CBufferSizeTest, PyBufferSizeTest) support.run_unittest(CBufferSizeTest, PyBufferSizeTest, BuiltinBufferSizeTest)
if __name__ == "__main__": if __name__ == "__main__":
test_main() test_main()
...@@ -124,6 +124,7 @@ class LargeFileTest(unittest.TestCase): ...@@ -124,6 +124,7 @@ class LargeFileTest(unittest.TestCase):
newsize -= 1 newsize -= 1
f.seek(42) f.seek(42)
f.truncate(newsize) f.truncate(newsize)
if self.new_io:
self.assertEqual(f.tell(), newsize) # else wasn't truncated self.assertEqual(f.tell(), newsize) # else wasn't truncated
f.seek(0, 2) f.seek(0, 2)
self.assertEqual(f.tell(), newsize) self.assertEqual(f.tell(), newsize)
...@@ -131,6 +132,7 @@ class LargeFileTest(unittest.TestCase): ...@@ -131,6 +132,7 @@ class LargeFileTest(unittest.TestCase):
# across platform; cut it waaaaay back # across platform; cut it waaaaay back
f.seek(0) f.seek(0)
f.truncate(1) f.truncate(1)
if self.new_io:
self.assertEqual(f.tell(), 1) # else pointer moved self.assertEqual(f.tell(), 1) # else pointer moved
f.seek(0) f.seek(0)
self.assertEqual(len(f.read()), 1) # else wasn't truncated self.assertEqual(len(f.read()), 1) # else wasn't truncated
...@@ -138,6 +140,8 @@ class LargeFileTest(unittest.TestCase): ...@@ -138,6 +140,8 @@ class LargeFileTest(unittest.TestCase):
def test_seekable(self): def test_seekable(self):
# Issue #5016; seekable() can return False when the current position # Issue #5016; seekable() can return False when the current position
# is negative when truncated to an int. # is negative when truncated to an int.
if not self.new_io:
self.skipTest("builtin file doesn't have seekable()")
for pos in (2**31-1, 2**31, 2**31+1): for pos in (2**31-1, 2**31, 2**31+1):
with self.open(TESTFN, 'rb') as f: with self.open(TESTFN, 'rb') as f:
f.seek(pos) f.seek(pos)
...@@ -171,10 +175,12 @@ def test_main(): ...@@ -171,10 +175,12 @@ def test_main():
else: else:
f.close() f.close()
suite = unittest.TestSuite() suite = unittest.TestSuite()
for _open, prefix in [(io.open, 'C'), (pyio.open, 'Py')]: for _open, prefix in [(io.open, 'C'), (pyio.open, 'Py'),
(open, 'Builtin')]:
class TestCase(LargeFileTest): class TestCase(LargeFileTest):
pass pass
TestCase.open = staticmethod(_open) TestCase.open = staticmethod(_open)
TestCase.new_io = _open is not open
TestCase.__name__ = prefix + LargeFileTest.__name__ TestCase.__name__ = prefix + LargeFileTest.__name__
suite.addTest(TestCase('test_seek')) suite.addTest(TestCase('test_seek'))
suite.addTest(TestCase('test_osstat')) suite.addTest(TestCase('test_osstat'))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment