Issue #20498: Fixed io.StringIO tests for newline='\n'. Added new tests.
This commit is contained in:
parent
8bf70f74cf
commit
dd9d64eb53
|
@ -522,6 +522,17 @@ class TextIOTestMixin:
|
||||||
self.assertIsNone(memio.errors)
|
self.assertIsNone(memio.errors)
|
||||||
self.assertFalse(memio.line_buffering)
|
self.assertFalse(memio.line_buffering)
|
||||||
|
|
||||||
|
def test_newline_default(self):
|
||||||
|
memio = self.ioclass("a\nb\r\nc\rd")
|
||||||
|
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
|
memio = self.ioclass()
|
||||||
|
self.assertEqual(memio.write("a\nb\r\nc\rd"), 8)
|
||||||
|
memio.seek(0)
|
||||||
|
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
def test_newline_none(self):
|
def test_newline_none(self):
|
||||||
# newline=None
|
# newline=None
|
||||||
memio = self.ioclass("a\nb\r\nc\rd", newline=None)
|
memio = self.ioclass("a\nb\r\nc\rd", newline=None)
|
||||||
|
@ -531,6 +542,8 @@ class TextIOTestMixin:
|
||||||
self.assertEqual(memio.read(2), "\nb")
|
self.assertEqual(memio.read(2), "\nb")
|
||||||
self.assertEqual(memio.read(2), "\nc")
|
self.assertEqual(memio.read(2), "\nc")
|
||||||
self.assertEqual(memio.read(1), "\n")
|
self.assertEqual(memio.read(1), "\n")
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\nc\nd")
|
||||||
|
|
||||||
memio = self.ioclass(newline=None)
|
memio = self.ioclass(newline=None)
|
||||||
self.assertEqual(2, memio.write("a\n"))
|
self.assertEqual(2, memio.write("a\n"))
|
||||||
self.assertEqual(3, memio.write("b\r\n"))
|
self.assertEqual(3, memio.write("b\r\n"))
|
||||||
|
@ -538,6 +551,7 @@ class TextIOTestMixin:
|
||||||
memio.seek(0)
|
memio.seek(0)
|
||||||
self.assertEqual(memio.read(), "a\nb\nc\nd")
|
self.assertEqual(memio.read(), "a\nb\nc\nd")
|
||||||
self.assertEqual(memio.getvalue(), "a\nb\nc\nd")
|
self.assertEqual(memio.getvalue(), "a\nb\nc\nd")
|
||||||
|
|
||||||
memio = self.ioclass("a\r\nb", newline=None)
|
memio = self.ioclass("a\r\nb", newline=None)
|
||||||
self.assertEqual(memio.read(3), "a\nb")
|
self.assertEqual(memio.read(3), "a\nb")
|
||||||
|
|
||||||
|
@ -550,6 +564,7 @@ class TextIOTestMixin:
|
||||||
self.assertEqual(memio.read(2), "\nc")
|
self.assertEqual(memio.read(2), "\nc")
|
||||||
self.assertEqual(memio.read(1), "\r")
|
self.assertEqual(memio.read(1), "\r")
|
||||||
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
memio = self.ioclass(newline="")
|
memio = self.ioclass(newline="")
|
||||||
self.assertEqual(2, memio.write("a\n"))
|
self.assertEqual(2, memio.write("a\n"))
|
||||||
self.assertEqual(2, memio.write("b\r"))
|
self.assertEqual(2, memio.write("b\r"))
|
||||||
|
@ -557,11 +572,19 @@ class TextIOTestMixin:
|
||||||
self.assertEqual(2, memio.write("\rd"))
|
self.assertEqual(2, memio.write("\rd"))
|
||||||
memio.seek(0)
|
memio.seek(0)
|
||||||
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\r", "d"])
|
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\r", "d"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
def test_newline_lf(self):
|
def test_newline_lf(self):
|
||||||
# newline="\n"
|
# newline="\n"
|
||||||
memio = self.ioclass("a\nb\r\nc\rd")
|
memio = self.ioclass("a\nb\r\nc\rd", newline="\n")
|
||||||
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"])
|
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
|
memio = self.ioclass(newline="\n")
|
||||||
|
self.assertEqual(memio.write("a\nb\r\nc\rd"), 8)
|
||||||
|
memio.seek(0)
|
||||||
|
self.assertEqual(list(memio), ["a\n", "b\r\n", "c\rd"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
|
||||||
|
|
||||||
def test_newline_cr(self):
|
def test_newline_cr(self):
|
||||||
# newline="\r"
|
# newline="\r"
|
||||||
|
@ -569,6 +592,12 @@ class TextIOTestMixin:
|
||||||
self.assertEqual(memio.read(), "a\rb\r\rc\rd")
|
self.assertEqual(memio.read(), "a\rb\r\rc\rd")
|
||||||
memio.seek(0)
|
memio.seek(0)
|
||||||
self.assertEqual(list(memio), ["a\r", "b\r", "\r", "c\r", "d"])
|
self.assertEqual(list(memio), ["a\r", "b\r", "\r", "c\r", "d"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd")
|
||||||
|
|
||||||
|
memio = self.ioclass(newline="\r")
|
||||||
|
self.assertEqual(memio.write("a\nb\r\nc\rd"), 8)
|
||||||
|
memio.seek(0)
|
||||||
|
self.assertEqual(list(memio), ["a\r", "b\r", "\r", "c\r", "d"])
|
||||||
memio.seek(0)
|
memio.seek(0)
|
||||||
self.assertEqual(memio.readlines(), ["a\r", "b\r", "\r", "c\r", "d"])
|
self.assertEqual(memio.readlines(), ["a\r", "b\r", "\r", "c\r", "d"])
|
||||||
self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd")
|
self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd")
|
||||||
|
@ -583,6 +612,12 @@ class TextIOTestMixin:
|
||||||
self.assertEqual(memio.readlines(), ["a\r\n", "b\r\r\n", "c\rd"])
|
self.assertEqual(memio.readlines(), ["a\r\n", "b\r\r\n", "c\rd"])
|
||||||
self.assertEqual(memio.getvalue(), "a\r\nb\r\r\nc\rd")
|
self.assertEqual(memio.getvalue(), "a\r\nb\r\r\nc\rd")
|
||||||
|
|
||||||
|
memio = self.ioclass(newline="\r\n")
|
||||||
|
self.assertEqual(memio.write("a\nb\r\nc\rd"), 8)
|
||||||
|
memio.seek(0)
|
||||||
|
self.assertEqual(list(memio), ["a\r\n", "b\r\r\n", "c\rd"])
|
||||||
|
self.assertEqual(memio.getvalue(), "a\r\nb\r\r\nc\rd")
|
||||||
|
|
||||||
def test_issue5265(self):
|
def test_issue5265(self):
|
||||||
# StringIO can duplicate newlines in universal newlines mode
|
# StringIO can duplicate newlines in universal newlines mode
|
||||||
memio = self.ioclass("a\r\nb\r\n", newline=None)
|
memio = self.ioclass("a\r\nb\r\n", newline=None)
|
||||||
|
|
Loading…
Reference in New Issue