summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-10-09 01:17:30 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-10-09 01:17:30 (GMT)
commit797485e10135ca323565b22b4fabf1e161a5ec7a (patch)
treefb439a51835b26a3c5bf7c066d74e7a75ac83b10 /Lib
parentb13b97d3b881daaab8f3bf32cc851eac9b895c52 (diff)
downloadcpython-797485e10135ca323565b22b4fabf1e161a5ec7a.zip
cpython-797485e10135ca323565b22b4fabf1e161a5ec7a.tar.gz
cpython-797485e10135ca323565b22b4fabf1e161a5ec7a.tar.bz2
Issue #25318: Avoid sprintf() in backslashreplace()
Rewrite backslashreplace() to be closer to PyCodec_BackslashReplaceErrors(). Add also unit tests for non-BMP characters.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_codecs.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 7b6883f..ff314b1 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -3155,7 +3155,8 @@ class ASCIITest(unittest.TestCase):
('[\x80\xff\u20ac]', 'ignore', b'[]'),
('[\x80\xff\u20ac]', 'replace', b'[???]'),
('[\x80\xff\u20ac]', 'xmlcharrefreplace', b'[&#128;&#255;&#8364;]'),
- ('[\x80\xff\u20ac]', 'backslashreplace', b'[\\x80\\xff\\u20ac]'),
+ ('[\x80\xff\u20ac\U000abcde]', 'backslashreplace',
+ b'[\\x80\\xff\\u20ac\\U000abcde]'),
('[\udc80\udcff]', 'surrogateescape', b'[\x80\xff]'),
):
with self.subTest(data=data, error_handler=error_handler,
@@ -3197,7 +3198,8 @@ class Latin1Test(unittest.TestCase):
for data, error_handler, expected in (
('[\u20ac\udc80]', 'ignore', b'[]'),
('[\u20ac\udc80]', 'replace', b'[??]'),
- ('[\u20ac\udc80]', 'backslashreplace', b'[\\u20ac\\udc80]'),
+ ('[\u20ac\U000abcde]', 'backslashreplace',
+ b'[\\u20ac\\U000abcde]'),
('[\u20ac\udc80]', 'xmlcharrefreplace', b'[&#8364;&#56448;]'),
('[\udc80\udcff]', 'surrogateescape', b'[\x80\xff]'),
):