diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2014-01-29 09:45:31 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-01-29 09:45:31 (GMT) |
commit | 9f2e46de34b28d20485ef4f1078c544238183537 (patch) | |
tree | f4019090a3785a0c1f685200b908e563ac61145c | |
parent | 61f56163485f645a0c66780b4746ecf98372f0eb (diff) | |
parent | c92ea76f3f43e367e9bf5fd12713c3b99ffad84a (diff) | |
download | cpython-9f2e46de34b28d20485ef4f1078c544238183537.zip cpython-9f2e46de34b28d20485ef4f1078c544238183537.tar.gz cpython-9f2e46de34b28d20485ef4f1078c544238183537.tar.bz2 |
Issue #20424: Python implementation of io.StringIO now supports lone surrogates.
-rw-r--r-- | Lib/_pyio.py | 2 | ||||
-rw-r--r-- | Lib/test/test_memoryio.py | 9 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/_pyio.py b/Lib/_pyio.py index d6eee79..edfb9b9 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -2052,7 +2052,7 @@ class StringIO(TextIOWrapper): def __init__(self, initial_value="", newline="\n"): super(StringIO, self).__init__(BytesIO(), encoding="utf-8", - errors="strict", + errors="surrogatepass", newline=newline) # Issue #5645: make universal newlines semantics the same as in the # C version, even under Windows. diff --git a/Lib/test/test_memoryio.py b/Lib/test/test_memoryio.py index 4de4f65..d4135d5 100644 --- a/Lib/test/test_memoryio.py +++ b/Lib/test/test_memoryio.py @@ -609,6 +609,15 @@ class PyStringIOTest(MemoryTestMixin, MemorySeekTestMixin, UnsupportedOperation = pyio.UnsupportedOperation EOF = "" + def test_lone_surrogates(self): + # Issue #20424 + memio = self.ioclass('\ud800') + self.assertEqual(memio.read(), '\ud800') + + memio = self.ioclass() + memio.write('\ud800') + self.assertEqual(memio.getvalue(), '\ud800') + class PyStringIOPickleTest(TextIOTestMixin, unittest.TestCase): """Test if pickle restores properly the internal state of StringIO. @@ -13,6 +13,8 @@ Core and Builtins Library ------- +- Issue #20424: Python implementation of io.StringIO now supports lone surrogates. + - Issue #20308: inspect.signature now works on classes without user-defined __init__ or __new__ methods. |