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