mirror of
				https://github.com/msgpack/msgpack-python.git
				synced 2025-10-31 01:20:53 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from unittest import TestCase, main
 | |
| from msgpack import packs, unpacks
 | |
| 
 | |
| class TestFormat(TestCase):
 | |
|     def __check(self, obj, expected_packed):
 | |
|         packed = packs(obj)
 | |
|         self.assertEqual(packed, expected_packed)
 | |
|         unpacked = unpacks(packed)
 | |
|         self.assertEqual(unpacked, obj)
 | |
| 
 | |
|     def testSimpleValues(self):
 | |
|         self.__check(None, '\xc0')
 | |
|         self.__check(True, '\xc3')
 | |
|         self.__check(False, '\xc2')
 | |
|         self.__check(
 | |
|                 [None, False, True],
 | |
|                 '\x93\xc0\xc2\xc3'
 | |
|                 )
 | |
| 
 | |
|     def testFixnum(self):
 | |
|         self.__check(
 | |
|                 [[0,64,127], [-32,-16,-1]],
 | |
|                 "\x92\x93\x00\x40\x7f\x93\xe0\xf0\xff"
 | |
|                 )
 | |
|     
 | |
|     def testFixArray(self):
 | |
|         self.__check(
 | |
|                 [[],[[None]]],
 | |
|                 "\x92\x90\x91\x91\xc0"
 | |
|                 )
 | |
| 
 | |
|     def testFixRaw(self):
 | |
|         self.__check(
 | |
|                 ["", "a", "bc", "def"],
 | |
|                 "\x94\xa0\xa1a\xa2bc\xa3def"
 | |
|                 )
 | |
|         pass
 | |
| 
 | |
|     def testFixMap(self):
 | |
|         self.__check(
 | |
|                 {False: {None: None}, True:{None:{}}},
 | |
|                 "\x82\xc2\x81\xc0\xc0\xc3\x81\xc0\x80"
 | |
|                 )
 | |
|         pass
 | |
| 
 | |
| 
 | |
| class TestUnpack(TestCase):
 | |
|     def __check(self, packed, obj):
 | |
|         self.assertEqual(unpacks(packed), obj)
 | |
| 
 | |
|     def testuint(self):
 | |
|         self.__check(
 | |
|                  "\x99\xcc\x00\xcc\x80\xcc\xff\xcd\x00\x00\xcd\x80\x00"
 | |
|                  "\xcd\xff\xff\xce\x00\x00\x00\x00\xce\x80\x00\x00\x00"
 | |
|                  "\xce\xff\xff\xff\xff",
 | |
|                  [0, 128, 255, 0, 32768, 65535, 0,
 | |
|                      2147483648, 4294967295],
 | |
|                  )
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 | 
