diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-06-03 21:45:03 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-06-03 21:45:03 (GMT) |
commit | ab5fcc00a7a50c4c61f0a7247b21a0728c134779 (patch) | |
tree | f1483434cadb546b7466fbd80ee31c9dbb74da3b | |
parent | 2bc6c2ec2f1338fee03ac4c8e6ec1207e4f4127d (diff) | |
parent | f5048a40752b8a0197ef9e4b6ace8dab75479fd7 (diff) | |
download | cpython-ab5fcc00a7a50c4c61f0a7247b21a0728c134779.zip cpython-ab5fcc00a7a50c4c61f0a7247b21a0728c134779.tar.gz cpython-ab5fcc00a7a50c4c61f0a7247b21a0728c134779.tar.bz2 |
(Merge 3.2) Issue #12016: Add test_errorhandle() to TestBase_Mapping of
test_multibytecodec_support. Improve also error message of the
test_errorhandle() of TestBase.
-rw-r--r-- | Lib/test/test_multibytecodec_support.py | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/Lib/test/test_multibytecodec_support.py b/Lib/test/test_multibytecodec_support.py index 7735976..ef63b69 100644 --- a/Lib/test/test_multibytecodec_support.py +++ b/Lib/test/test_multibytecodec_support.py @@ -58,11 +58,16 @@ class TestBase: result = func(source, scheme)[0] if func is self.decode: self.assertTrue(type(result) is str, type(result)) + self.assertEqual(result, expected, + '%a.decode(%r, %r)=%a != %a' + % (source, self.encoding, scheme, result, + expected)) else: self.assertTrue(type(result) is bytes, type(result)) - self.assertEqual(result, expected, - '%a.decode(%r)=%a != %a' - % (source, self.encoding, result, expected)) + self.assertEqual(result, expected, + '%a.encode(%r, %r)=%a != %a' + % (source, self.encoding, scheme, result, + expected)) else: self.assertRaises(UnicodeError, func, source, scheme) @@ -279,6 +284,7 @@ class TestBase_Mapping(unittest.TestCase): pass_enctest = [] pass_dectest = [] supmaps = [] + codectests = [] def __init__(self, *args, **kw): unittest.TestCase.__init__(self, *args, **kw) @@ -348,6 +354,30 @@ class TestBase_Mapping(unittest.TestCase): if (csetch, unich) not in self.pass_dectest: self.assertEqual(str(csetch, self.encoding), unich) + def test_errorhandle(self): + for source, scheme, expected in self.codectests: + if isinstance(source, bytes): + func = source.decode + else: + func = source.encode + if expected: + if isinstance(source, bytes): + result = func(self.encoding, scheme) + self.assertTrue(type(result) is str, type(result)) + self.assertEqual(result, expected, + '%a.decode(%r, %r)=%a != %a' + % (source, self.encoding, scheme, result, + expected)) + else: + result = func(self.encoding, scheme) + self.assertTrue(type(result) is bytes, type(result)) + self.assertEqual(result, expected, + '%a.encode(%r, %r)=%a != %a' + % (source, self.encoding, scheme, result, + expected)) + else: + self.assertRaises(UnicodeError, func, self.encoding, scheme) + def load_teststring(name): dir = os.path.join(os.path.dirname(__file__), 'cjkencodings') with open(os.path.join(dir, name + '.txt'), 'rb') as f: |