[Python-3000-checkins] r58909 - python/branches/py3k/Lib/test/outstanding_bugs.py

christian.heimes python-3000-checkins at python.org
Thu Nov 8 14:12:43 CET 2007


Author: christian.heimes
Date: Thu Nov  8 14:12:43 2007
New Revision: 58909

Modified:
   python/branches/py3k/Lib/test/outstanding_bugs.py
Log:
Added tests from Raghuram Devarakonda for bug #1395 'py3k: duplicated line endings when using read(1)' to outstanding_bugs.py

Modified: python/branches/py3k/Lib/test/outstanding_bugs.py
==============================================================================
--- python/branches/py3k/Lib/test/outstanding_bugs.py	(original)
+++ python/branches/py3k/Lib/test/outstanding_bugs.py	Thu Nov  8 14:12:43 2007
@@ -45,9 +45,77 @@
             self.assertEquals(aptr, 1)
             self.assertEquals(bptr, 0)
 
+# test_io
+import io
+class TextIOWrapperTest(unittest.TestCase):
+
+    def setUp(self):
+        self.testdata = b"AAA\r\nBBB\rCCC\r\nDDD\nEEE\r\n"
+        self.normalized = b"AAA\nBBB\nCCC\nDDD\nEEE\n".decode("ASCII")
+
+    def tearDown(self):
+        test_support.unlink(test_support.TESTFN)
+
+
+    def test_issue1395_1(self):
+        txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ASCII")
+
+        # read one char at a time
+        reads = ""
+        while True:
+            c = txt.read(1)
+            if not c:
+                break
+            reads += c
+        self.assertEquals(reads, self.normalized)
+
+    def test_issue1395_2(self):
+        txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ASCII")
+        txt._CHUNK_SIZE = 4
+
+        reads = ""
+        while True:
+            c = txt.read(4)
+            if not c:
+                break
+            reads += c
+        self.assertEquals(reads, self.normalized)
+
+    def test_issue1395_3(self):
+        txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ASCII")
+        txt._CHUNK_SIZE = 4
+
+        reads = txt.read(4)
+        reads += txt.read(4)
+        reads += txt.readline()
+        reads += txt.readline()
+        reads += txt.readline()
+        self.assertEquals(reads, self.normalized)
+
+    def test_issue1395_4(self):
+        txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ASCII")
+        txt._CHUNK_SIZE = 4
+
+        reads = txt.read(4)
+        reads += txt.read()
+        self.assertEquals(reads, self.normalized)
+
+    def test_issue1395_5(self):
+        txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ASCII")
+        txt._CHUNK_SIZE = 4
+
+        reads = txt.read(4)
+        pos = txt.tell()
+        txt.seek(0)
+        txt.seek(pos)
+        self.assertEquals(txt.read(4), "BBB\n")
+
+
 
 def test_main():
-    test_support.run_unittest(TestDifflibLongestMatch)
+    test_support.run_unittest(
+        TestDifflibLongestMatch,
+        TextIOWrapperTest)
 
 if __name__ == "__main__":
     test_main()


More information about the Python-3000-checkins mailing list