1 """ Python character mapping codec test 2 3 This uses the test codec in testcodec.py and thus also tests the 4 encodings package lookup scheme. 5 6 Written by Marc-Andre Lemburg (mal (at] lemburg.com). 7 8 (c) Copyright 2000 Guido van Rossum. 9 10 """#" 11 12 import test.test_support, unittest 13 14 import codecs 15 16 # Register a search function which knows about our codec 17 def codec_search_function(encoding): 18 if encoding == 'testcodec': 19 from test import testcodec 20 return tuple(testcodec.getregentry()) 21 return None 22 23 codecs.register(codec_search_function) 24 25 # test codec's name (see test/testcodec.py) 26 codecname = 'testcodec' 27 28 class CharmapCodecTest(unittest.TestCase): 29 def test_constructorx(self): 30 self.assertEqual(unicode('abc', codecname), u'abc') 31 self.assertEqual(unicode('xdef', codecname), u'abcdef') 32 self.assertEqual(unicode('defx', codecname), u'defabc') 33 self.assertEqual(unicode('dxf', codecname), u'dabcf') 34 self.assertEqual(unicode('dxfx', codecname), u'dabcfabc') 35 36 def test_encodex(self): 37 self.assertEqual(u'abc'.encode(codecname), 'abc') 38 self.assertEqual(u'xdef'.encode(codecname), 'abcdef') 39 self.assertEqual(u'defx'.encode(codecname), 'defabc') 40 self.assertEqual(u'dxf'.encode(codecname), 'dabcf') 41 self.assertEqual(u'dxfx'.encode(codecname), 'dabcfabc') 42 43 def test_constructory(self): 44 self.assertEqual(unicode('ydef', codecname), u'def') 45 self.assertEqual(unicode('defy', codecname), u'def') 46 self.assertEqual(unicode('dyf', codecname), u'df') 47 self.assertEqual(unicode('dyfy', codecname), u'df') 48 49 def test_maptoundefined(self): 50 self.assertRaises(UnicodeError, unicode, 'abc\001', codecname) 51 52 def test_main(): 53 test.test_support.run_unittest(CharmapCodecTest) 54 55 if __name__ == "__main__": 56 test_main() 57