mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
#2630: Implement PEP 3138.
The repr() of a string now contains printable Unicode characters unescaped. The new ascii() builtin can be used to get a repr() with only ASCII characters in it. PEP and patch were written by Atsuo Ishimoto.
This commit is contained in:
parent
ea6d58d9d3
commit
559e5d7f4d
25 changed files with 1271 additions and 974 deletions
|
|
@ -1440,6 +1440,12 @@ class OutputChecker:
|
|||
and returns true if they match; and `output_difference`, which
|
||||
returns a string describing the differences between two outputs.
|
||||
"""
|
||||
def _toAscii(self, s):
|
||||
"""
|
||||
Convert string to hex-escaped ASCII string.
|
||||
"""
|
||||
return str(s.encode('ASCII', 'backslashreplace'), "ASCII")
|
||||
|
||||
def check_output(self, want, got, optionflags):
|
||||
"""
|
||||
Return True iff the actual output from an example (`got`)
|
||||
|
|
@ -1450,6 +1456,15 @@ class OutputChecker:
|
|||
documentation for `TestRunner` for more information about
|
||||
option flags.
|
||||
"""
|
||||
|
||||
# If `want` contains hex-escaped character such as "\u1234",
|
||||
# then `want` is a string of six characters(e.g. [\,u,1,2,3,4]).
|
||||
# On the other hand, `got` could be an another sequence of
|
||||
# characters such as [\u1234], so `want` and `got` should
|
||||
# be folded to hex-escaped ASCII string to compare.
|
||||
got = self._toAscii(got)
|
||||
want = self._toAscii(want)
|
||||
|
||||
# Handle the common case first, for efficiency:
|
||||
# if they're string-identical, always return true.
|
||||
if got == want:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue