mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
implement a detach() method for BufferedIOBase and TextIOBase #5883
This commit is contained in:
parent
155374d95d
commit
d2e0c7955f
7 changed files with 214 additions and 15 deletions
|
@ -57,6 +57,10 @@ class MemorySeekTestMixin:
|
|||
|
||||
class MemoryTestMixin:
|
||||
|
||||
def test_detach(self):
|
||||
buf = self.ioclass()
|
||||
self.assertRaises(self.UnsupportedOperation, buf.detach)
|
||||
|
||||
def write_ops(self, f, t):
|
||||
self.assertEqual(f.write(t("blah.")), 5)
|
||||
self.assertEqual(f.seek(0), 0)
|
||||
|
@ -336,6 +340,9 @@ class MemoryTestMixin:
|
|||
|
||||
|
||||
class PyBytesIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase):
|
||||
|
||||
UnsupportedOperation = pyio.UnsupportedOperation
|
||||
|
||||
@staticmethod
|
||||
def buftype(s):
|
||||
return s.encode("ascii")
|
||||
|
@ -413,6 +420,7 @@ class PyBytesIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase):
|
|||
class PyStringIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase):
|
||||
buftype = str
|
||||
ioclass = pyio.StringIO
|
||||
UnsupportedOperation = pyio.UnsupportedOperation
|
||||
EOF = ""
|
||||
|
||||
# TextIO-specific behaviour.
|
||||
|
@ -518,9 +526,11 @@ class PyStringIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase):
|
|||
|
||||
class CBytesIOTest(PyBytesIOTest):
|
||||
ioclass = io.BytesIO
|
||||
UnsupportedOperation = io.UnsupportedOperation
|
||||
|
||||
class CStringIOTest(PyStringIOTest):
|
||||
ioclass = io.StringIO
|
||||
UnsupportedOperation = io.UnsupportedOperation
|
||||
|
||||
# XXX: For the Python version of io.StringIO, this is highly
|
||||
# dependent on the encoding used for the underlying buffer.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue