summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/io.py3
-rw-r--r--Lib/test/test_io.py24
-rw-r--r--Misc/NEWS.d/next/Library/2023-10-30-08-50-46.gh-issue-111356.Bc8LvA.rst1
3 files changed, 17 insertions, 11 deletions
diff --git a/Lib/io.py b/Lib/io.py
index 50ce974..f0e2fa1 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -45,7 +45,8 @@ __all__ = ["BlockingIOError", "open", "open_code", "IOBase", "RawIOBase",
"FileIO", "BytesIO", "StringIO", "BufferedIOBase",
"BufferedReader", "BufferedWriter", "BufferedRWPair",
"BufferedRandom", "TextIOBase", "TextIOWrapper",
- "UnsupportedOperation", "SEEK_SET", "SEEK_CUR", "SEEK_END"]
+ "UnsupportedOperation", "SEEK_SET", "SEEK_CUR", "SEEK_END",
+ "DEFAULT_BUFFER_SIZE", "text_encoding", "IncrementalNewlineDecoder"]
import _io
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index e032325..247eceb 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -4052,19 +4052,18 @@ class PyIncrementalNewlineDecoderTest(IncrementalNewlineDecoderTest):
class MiscIOTest(unittest.TestCase):
+ # for test__all__, actual values are set in subclasses
+ name_of_module = None
+ extra_exported = ()
+ not_exported = ()
+
def tearDown(self):
os_helper.unlink(os_helper.TESTFN)
def test___all__(self):
- for name in self.io.__all__:
- obj = getattr(self.io, name, None)
- self.assertIsNotNone(obj, name)
- if name in ("open", "open_code"):
- continue
- elif "error" in name.lower() or name == "UnsupportedOperation":
- self.assertTrue(issubclass(obj, Exception), name)
- elif not name.startswith("SEEK_"):
- self.assertTrue(issubclass(obj, self.IOBase))
+ support.check__all__(self, self.io, self.name_of_module,
+ extra=self.extra_exported,
+ not_exported=self.not_exported)
def test_attributes(self):
f = self.open(os_helper.TESTFN, "wb", buffering=0)
@@ -4426,6 +4425,8 @@ class MiscIOTest(unittest.TestCase):
class CMiscIOTest(MiscIOTest):
io = io
+ name_of_module = "io", "_io"
+ extra_exported = "BlockingIOError",
def test_readinto_buffer_overflow(self):
# Issue #18025
@@ -4490,6 +4491,9 @@ class CMiscIOTest(MiscIOTest):
class PyMiscIOTest(MiscIOTest):
io = pyio
+ name_of_module = "_pyio", "io"
+ extra_exported = "BlockingIOError", "open_code",
+ not_exported = "valid_seek_flags",
@unittest.skipIf(os.name == 'nt', 'POSIX signals required for this test.')
@@ -4777,7 +4781,7 @@ def load_tests(loader, tests, pattern):
mocks = (MockRawIO, MisbehavedRawIO, MockFileIO, CloseFailureIO,
MockNonBlockWriterIO, MockUnseekableIO, MockRawIOWithoutRead,
SlowFlushRawIO)
- all_members = io.__all__ + ["IncrementalNewlineDecoder"]
+ all_members = io.__all__
c_io_ns = {name : getattr(io, name) for name in all_members}
py_io_ns = {name : getattr(pyio, name) for name in all_members}
globs = globals()
diff --git a/Misc/NEWS.d/next/Library/2023-10-30-08-50-46.gh-issue-111356.Bc8LvA.rst b/Misc/NEWS.d/next/Library/2023-10-30-08-50-46.gh-issue-111356.Bc8LvA.rst
new file mode 100644
index 0000000..a821b52
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-10-30-08-50-46.gh-issue-111356.Bc8LvA.rst
@@ -0,0 +1 @@
+Added :func:`io.text_encoding()`, :data:`io.DEFAULT_BUFFER_SIZE`, and :class:`io.IncrementalNewlineDecoder` to ``io.__all__``.