From: Florent Xicluna <florent.xicluna@gmail.com>
Date: Sat, 27 Feb 2010 11:38:27 +0000 (+0000)
Subject: Recorded merge of revisions 78462,78484 via svnmerge from
X-Git-Tag: v3.1.2rc1~36
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e36b2c693cdb8d1bf1900be41bc808da9eb53e17;p=python

Recorded merge of revisions 78462,78484 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r78462 | florent.xicluna | 2010-02-26 12:12:33 +0100 (ven, 26 fév 2010) | 9 lines

  Merged revisions 78461 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78461 | florent.xicluna | 2010-02-26 11:40:58 +0100 (ven, 26 fév 2010) | 2 lines

    #691291: codecs.open() should not convert end of lines on reading and writing.
  ........
................
  r78484 | florent.xicluna | 2010-02-27 12:31:21 +0100 (sam, 27 fév 2010) | 9 lines

  Merged revisions 78482 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78482 | florent.xicluna | 2010-02-27 12:19:18 +0100 (sam, 27 fév 2010) | 2 lines

    Add entry for issue #691291.
  ........
................
---

diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index d0bcf56953..2c646ba6c1 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -483,6 +483,21 @@ class UTF16Test(ReadTest):
         self.check_state_handling_decode(self.encoding,
                                          "spamspam", self.spambe)
 
+    def test_bug691291(self):
+        # Files are always opened in binary mode, even if no binary mode was
+        # specified.  This means that no automatic conversion of '\n' is done
+        # on reading and writing.
+        s1 = 'Hello\r\nworld\r\n'
+
+        s = s1.encode(self.encoding)
+        try:
+            with open(support.TESTFN, 'wb') as fp:
+                fp.write(s)
+            with codecs.open(support.TESTFN, 'U', encoding=self.encoding) as reader:
+                self.assertEqual(reader.read(), s1)
+        finally:
+            support.unlink(support.TESTFN)
+
 class UTF16LETest(ReadTest):
     encoding = "utf-16-le"
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 64d5309837..9e0bc6ad0d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -92,6 +92,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #691291: codecs.open() should not convert end of lines on reading and
+  writing.
+
 - Issue #7959: ctypes callback functions are now registered correctly
   with the cycle garbage collector.