diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -683,6 +683,28 @@ for encoding in ('utf-8',): self.assertEqual(unicode(u.encode(encoding),encoding), u) + def test_codecs_unicode_escape(self): + # issue 7615: escape quotes + u = u'a\'b"c\'\'\'d"""e' + for q in ("'", '"', "'''", '"""'): + self.assertEqual( + eval('u' + q + u.encode('unicode_escape') + q), u) + + def test_codecs_raw_unicode_escape(self): + # issue 7615: escape quotes + u = u'a\'b"c\'\'\'d"""e' + for q in ("'", '"', "'''", '"""'): + self.assertEqual( + eval('ur' + q + u.encode('raw_unicode_escape') + q), u) + + # issue 7615: escape backslashes + for u in ( + u'\\', # eval should not raise SyntaxError + u'\\u0066\\U00000067', # should not eval to u'fg' + ): + self.assertEqual( + eval("ur'" + u.encode('raw_unicode_escape') + "'"), u) + def test_codecs_charmap(self): # 0-127 s = ''.join(map(chr, xrange(128)))