[Python-checkins] cpython (2.7): Issue #20498: Fixed io.StringIO tests for newline='\n'. Added new tests.

serhiy.storchaka python-checkins at python.org
Wed Feb 5 12:43:07 CET 2014


http://hg.python.org/cpython/rev/07e7bb29a2c5
changeset:   88969:07e7bb29a2c5
branch:      2.7
parent:      88959:45aa817ec853
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Wed Feb 05 13:41:38 2014 +0200
summary:
  Issue #20498: Fixed io.StringIO tests for newline='\n'. Added new tests.

files:
  Lib/test/test_memoryio.py |  37 ++++++++++++++++++++++++++-
  1 files changed, 36 insertions(+), 1 deletions(-)


diff --git a/Lib/test/test_memoryio.py b/Lib/test/test_memoryio.py
--- a/Lib/test/test_memoryio.py
+++ b/Lib/test/test_memoryio.py
@@ -522,6 +522,17 @@
         self.assertIsNone(memio.errors)
         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):
         # newline=None
         memio = self.ioclass("a\nb\r\nc\rd", newline=None)
@@ -531,6 +542,8 @@
         self.assertEqual(memio.read(2), "\nb")
         self.assertEqual(memio.read(2), "\nc")
         self.assertEqual(memio.read(1), "\n")
+        self.assertEqual(memio.getvalue(), "a\nb\nc\nd")
+
         memio = self.ioclass(newline=None)
         self.assertEqual(2, memio.write("a\n"))
         self.assertEqual(3, memio.write("b\r\n"))
@@ -538,6 +551,7 @@
         memio.seek(0)
         self.assertEqual(memio.read(), "a\nb\nc\nd")
         self.assertEqual(memio.getvalue(), "a\nb\nc\nd")
+
         memio = self.ioclass("a\r\nb", newline=None)
         self.assertEqual(memio.read(3), "a\nb")
 
@@ -550,6 +564,7 @@
         self.assertEqual(memio.read(2), "\nc")
         self.assertEqual(memio.read(1), "\r")
         self.assertEqual(memio.getvalue(), "a\nb\r\nc\rd")
+
         memio = self.ioclass(newline="")
         self.assertEqual(2, memio.write("a\n"))
         self.assertEqual(2, memio.write("b\r"))
@@ -557,11 +572,19 @@
         self.assertEqual(2, memio.write("\rd"))
         memio.seek(0)
         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):
         # 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(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):
         # newline="\r"
@@ -569,6 +592,12 @@
         self.assertEqual(memio.read(), "a\rb\r\rc\rd")
         memio.seek(0)
         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)
         self.assertEqual(memio.readlines(), ["a\r", "b\r", "\r", "c\r", "d"])
         self.assertEqual(memio.getvalue(), "a\rb\r\rc\rd")
@@ -583,6 +612,12 @@
         self.assertEqual(memio.readlines(), ["a\r\n", "b\r\r\n", "c\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):
         # StringIO can duplicate newlines in universal newlines mode
         memio = self.ioclass("a\r\nb\r\n", newline=None)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list