tests/test-encoding-func.py
changeset 37947 3ea3c96ada54
parent 37946 57b0c7221dba
child 43076 2372284d9457
equal deleted inserted replaced
37946:57b0c7221dba 37947:3ea3c96ada54
    51         s = u'\xc0'.encode('utf-8')
    51         s = u'\xc0'.encode('utf-8')
    52         l = encoding.tolocal(s)
    52         l = encoding.tolocal(s)
    53         self.assertEqual(l, b'?')  # lossy
    53         self.assertEqual(l, b'?')  # lossy
    54         self.assertEqual(s, encoding.toutf8b(l))  # utf8 sequence preserved
    54         self.assertEqual(s, encoding.toutf8b(l))  # utf8 sequence preserved
    55 
    55 
       
    56     def testlosslesslatin(self):
       
    57         encoding.encoding = b'latin-1'
       
    58         s = u'\xc0'.encode('utf-8')
       
    59         l = encoding.tolocal(s)
       
    60         self.assertEqual(l, b'\xc0')  # lossless
       
    61         self.assertEqual(s, encoding.toutf8b(l))  # convert back to utf-8
       
    62 
    56     def testlossy0xed(self):
    63     def testlossy0xed(self):
    57         encoding.encoding = b'euc-kr'  # U+Dxxx Hangul
    64         encoding.encoding = b'euc-kr'  # U+Dxxx Hangul
    58         s = u'\ud1bc\xc0'.encode('utf-8')
    65         s = u'\ud1bc\xc0'.encode('utf-8')
    59         l = encoding.tolocal(s)
    66         l = encoding.tolocal(s)
    60         self.assertIn(b'\xed', l)
    67         self.assertIn(b'\xed', l)
    61         self.assertTrue(l.endswith(b'?'))  # lossy
    68         self.assertTrue(l.endswith(b'?'))  # lossy
    62         self.assertEqual(s, encoding.toutf8b(l))  # utf8 sequence preserved
    69         self.assertEqual(s, encoding.toutf8b(l))  # utf8 sequence preserved
    63 
    70 
       
    71     def testlossless0xed(self):
       
    72         encoding.encoding = b'euc-kr'  # U+Dxxx Hangul
       
    73         s = u'\ud1bc'.encode('utf-8')
       
    74         l = encoding.tolocal(s)
       
    75         self.assertEqual(l, b'\xc5\xed')  # lossless
       
    76         self.assertEqual(s, encoding.toutf8b(l))  # convert back to utf-8
       
    77 
    64 if __name__ == '__main__':
    78 if __name__ == '__main__':
    65     import silenttestrunner
    79     import silenttestrunner
    66     silenttestrunner.main(__name__)
    80     silenttestrunner.main(__name__)