Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(64)

Unified Diff: Lib/doctest.py

Issue 767: [issue2630] repr() should not escape non-ASCII characters (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/branches/py3k/
Patch Set: Created 5 months, 1 week ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side by-side-diff with in-line comments
Download patch
Index: Lib/doctest.py
===================================================================
--- Lib/doctest.py (revision 62744)
+++ Lib/doctest.py (working copy)
@@ -1444,6 +1444,13 @@
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`)
@@ -1454,6 +1461,15 @@
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:

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld r338