]> granicus.if.org Git - python/commitdiff
Added tests from Raghuram Devarakonda for bug #1395 'py3k: duplicated line endings...
authorChristian Heimes <christian@cheimes.de>
Thu, 8 Nov 2007 13:12:43 +0000 (13:12 +0000)
committerChristian Heimes <christian@cheimes.de>
Thu, 8 Nov 2007 13:12:43 +0000 (13:12 +0000)
Lib/test/outstanding_bugs.py

index 7c6cd9ef6b81899dbae477d68b0525894613a387..9c75bfca9cff9e11e6c231fe09725ebde7edff4f 100644 (file)
@@ -45,9 +45,77 @@ class TestDifflibLongestMatch(unittest.TestCase):
             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()