Make test_socket work.
Don't exclude test_socket from the tests to run.
diff --git a/Lib/io.py b/Lib/io.py
index 4d46b47..4c9ddbb 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -300,17 +300,23 @@
def readline(self, limit: int = -1) -> bytes:
"""For backwards compatibility, a (slowish) readline()."""
+ if hasattr(self, "peek"):
+ def nreadahead():
+ readahead = self.peek(1, unsafe=True)
+ if not readahead:
+ return 1
+ n = (readahead.find(b"\n") + 1) or len(readahead)
+ if limit >= 0:
+ n = min(n, limit)
+ return n
+ else:
+ def nreadahead():
+ return 1
if limit is None:
limit = -1
res = bytes()
while limit < 0 or len(res) < limit:
- readahead = self.peek(1, unsafe=True)
- if not readahead:
- break
- n = (readahead.find(b"\n") + 1) or len(readahead)
- if limit >= 0:
- n = min(n, limit)
- b = self.read(n)
+ b = self.read(nreadahead())
if not b:
break
res += b