From 0451fb942e63f816b2d8a993d53bc5cbfda7efc8 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 4 Oct 2015 13:52:40 +0300 Subject: [PATCH] Make error report in test_codecs more informative. --- Lib/test/test_codecs.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 9ae0ed0848..2c0058835f 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -573,9 +573,13 @@ class UTF16LETest(ReadTest): (b'\x00\xdcA\x00', u'\ufffdA'), ] for raw, expected in tests: - self.assertRaises(UnicodeDecodeError, codecs.utf_16_le_decode, - raw, 'strict', True) - self.assertEqual(raw.decode('utf-16le', 'replace'), expected) + try: + with self.assertRaises(UnicodeDecodeError): + codecs.utf_16_le_decode(raw, 'strict', True) + self.assertEqual(raw.decode('utf-16le', 'replace'), expected) + except: + print 'raw=%r' % raw + raise class UTF16BETest(ReadTest): encoding = "utf-16-be" @@ -610,9 +614,13 @@ class UTF16BETest(ReadTest): (b'\xdc\x00\x00A', u'\ufffdA'), ] for raw, expected in tests: - self.assertRaises(UnicodeDecodeError, codecs.utf_16_be_decode, - raw, 'strict', True) - self.assertEqual(raw.decode('utf-16be', 'replace'), expected) + try: + with self.assertRaises(UnicodeDecodeError): + codecs.utf_16_be_decode(raw, 'strict', True) + self.assertEqual(raw.decode('utf-16be', 'replace'), expected) + except: + print 'raw=%r' % raw + raise class UTF8Test(ReadTest): encoding = "utf-8" @@ -704,9 +712,13 @@ class UTF7Test(ReadTest): ('a+IKw\xffb', u'a\u20ac\ufffdb'), ] for raw, expected in tests: - self.assertRaises(UnicodeDecodeError, codecs.utf_7_decode, - raw, 'strict', True) - self.assertEqual(raw.decode('utf-7', 'replace'), expected) + try: + with self.assertRaises(UnicodeDecodeError): + codecs.utf_7_decode(raw, 'strict', True) + self.assertEqual(raw.decode('utf-7', 'replace'), expected) + except: + print 'raw=%r' % raw + raise def test_nonbmp(self): self.assertEqual(u'\U000104A0'.encode(self.encoding), '+2AHcoA-') @@ -740,7 +752,11 @@ class UTF7Test(ReadTest): ('a+IKwgrNgBA-b', u'a\u20ac\u20ac\ufffdb'), ] for raw, expected in tests: - self.assertEqual(raw.decode('utf-7', 'replace'), expected) + try: + self.assertEqual(raw.decode('utf-7', 'replace'), expected) + except: + print 'raw=%r' % raw + raise class UTF16ExTest(unittest.TestCase): -- 2.50.1