test_charmapcodec.py 1.8 KB

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