mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Issue #12016: Add test_errorhandle() to TestBase_Mapping of
test_multibytecodec_support. Improve also error message of the test_errorhandle() of TestBase.
This commit is contained in:
		
							parent
							
								
									5dfe3bb2d9
								
							
						
					
					
						commit
						f5048a4075
					
				
					 1 changed files with 33 additions and 3 deletions
				
			
		|  | @ -58,11 +58,16 @@ def test_errorhandle(self): | |||
|                 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 @@ def _testpoint(self, csetch, unich): | |||
|         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: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Victor Stinner
						Victor Stinner