(root)/
Python-3.12.0/
Lib/
test/
test_charmapcodec.py
       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@lemburg.com).
       7  
       8  (c) Copyright 2000 Guido van Rossum.
       9  
      10  """#"
      11  
      12  import 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  # test codec's name (see test/testcodec.py)
      24  codecname = 'testcodec'
      25  
      26  class ESC[4;38;5;81mCharmapCodecTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      27  
      28      def setUp(self):
      29          codecs.register(codec_search_function)
      30          self.addCleanup(codecs.unregister, codec_search_function)
      31  
      32      def test_constructorx(self):
      33          self.assertEqual(str(b'abc', codecname), 'abc')
      34          self.assertEqual(str(b'xdef', codecname), 'abcdef')
      35          self.assertEqual(str(b'defx', codecname), 'defabc')
      36          self.assertEqual(str(b'dxf', codecname), 'dabcf')
      37          self.assertEqual(str(b'dxfx', codecname), 'dabcfabc')
      38  
      39      def test_encodex(self):
      40          self.assertEqual('abc'.encode(codecname), b'abc')
      41          self.assertEqual('xdef'.encode(codecname), b'abcdef')
      42          self.assertEqual('defx'.encode(codecname), b'defabc')
      43          self.assertEqual('dxf'.encode(codecname), b'dabcf')
      44          self.assertEqual('dxfx'.encode(codecname), b'dabcfabc')
      45  
      46      def test_constructory(self):
      47          self.assertEqual(str(b'ydef', codecname), 'def')
      48          self.assertEqual(str(b'defy', codecname), 'def')
      49          self.assertEqual(str(b'dyf', codecname), 'df')
      50          self.assertEqual(str(b'dyfy', codecname), 'df')
      51  
      52      def test_maptoundefined(self):
      53          self.assertRaises(UnicodeError, str, b'abc\001', codecname)
      54  
      55  if __name__ == "__main__":
      56      unittest.main()