From f954c4b9fb8529cc13a2e24c58137c66ac836b28 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 4 Jun 2008 11:41:32 +0000 Subject: Remove meaning of -ttt, but still accept -t option on cmdline for compatibility. --- Lib/doctest.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Lib/doctest.py') diff --git a/Lib/doctest.py b/Lib/doctest.py index dad8333bbd..772e142521 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -1441,6 +1441,13 @@ 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`) @@ -1451,6 +1458,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: -- cgit v1.2.1