mirror of
https://github.com/python/cpython.git
synced 2025-07-29 22:24:49 +00:00
Re-enable testing of builtin open() in test_bufio in test_largefile
This commit is contained in:
parent
47a5f48006
commit
c5ae86b9d3
2 changed files with 13 additions and 4 deletions
|
@ -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,20 +124,24 @@ class LargeFileTest(unittest.TestCase):
|
||||||
newsize -= 1
|
newsize -= 1
|
||||||
f.seek(42)
|
f.seek(42)
|
||||||
f.truncate(newsize)
|
f.truncate(newsize)
|
||||||
self.assertEqual(f.tell(), newsize) # else wasn't truncated
|
if self.new_io:
|
||||||
|
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)
|
||||||
# XXX truncate(larger than true size) is ill-defined
|
# XXX truncate(larger than true size) is ill-defined
|
||||||
# across platform; cut it waaaaay back
|
# across platform; cut it waaaaay back
|
||||||
f.seek(0)
|
f.seek(0)
|
||||||
f.truncate(1)
|
f.truncate(1)
|
||||||
self.assertEqual(f.tell(), 1) # else pointer moved
|
if self.new_io:
|
||||||
|
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
|
||||||
|
|
||||||
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():
|
||||||
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'))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue