Пример #1
0
 def test_codec_vint(self):
     expected_pb = b'\x08\x96\x01'
     raw_obj = 150
     self.assertEqual(minipb.encode('V', raw_obj), expected_pb)
     self.assertEqual(minipb.decode('V', expected_pb)[0], raw_obj)
Пример #2
0
 def test_codec_vint_field(self):
     expected_pb = b'\x80\x01\x01'
     fields = (1,)
     # Field 16 requires 2 bytes
     self.assertEqual(minipb.encode('x15V', *fields), expected_pb)
     self.assertEqual(minipb.decode('x15V', expected_pb), fields)
Пример #3
0
 def test_codec_vint_2sc_negative(self):
     expected_pb = b'\x08\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01'
     fields = (-1,)
     self.assertEqual(minipb.encode('t', *fields), expected_pb)
     self.assertEqual(minipb.decode('t', expected_pb), fields)
Пример #4
0
 def test_codec_nested_message(self):
     expected_pb = b'\x1a\x03\x08\x96\x01'
     raw_obj = (150, )
     self.assertEqual(minipb.encode('x2[V]', raw_obj), expected_pb)
     self.assertEqual(minipb.decode('x2[V]', expected_pb)[0], raw_obj)
Пример #5
0
 def test_codec_fixed(self):
     expected_pb = b'\r\xff\xff\xff\xff\x15\x01\x00\x00\x00\x1d\x00\x00\x80?!\xcc\xe3# \xfd\xff\xff\xff)\xd2\x02\x96I\x00\x00\x00\x001\x18-DT\xfb!\t@'
     fields = (-1, 1, 1.0, -12345678900, 1234567890, 3.141592653589793)
     self.assertEqual(minipb.encode('iIfqQd', *fields), expected_pb)
     self.assertEqual(minipb.decode('iIfqQd', expected_pb), fields)
Пример #6
0
 def test_codec_packed_repeated_field_double_decode(self):
     expected_pb = b'\x22\x06\x03\x8e\x02\x9e\xa7\x05' * 2
     raw_obj = (3, 270, 86942) * 2
     self.assertEqual(minipb.decode('x3#V', expected_pb)[0], raw_obj)
Пример #7
0
 def test_badbehavior_chopped_message_fixed64(self):
     expected_pb = b'\t\xff\x00'
     with self.assertRaises(minipb.CodecError) as details:
         minipb.decode('Q', expected_pb)
     self.assertIn('Unexpected end of message', details.exception.args[0])
Пример #8
0
 def test_codec_str(self):
     expected_pb = b'\x12\x07\x74\x65\x73\x74\x69\x6e\x67'
     raw_obj = 'testing'
     self.assertEqual(minipb.encode('xU', raw_obj), expected_pb)
     self.assertEqual(minipb.decode('xU', expected_pb)[0], raw_obj)
Пример #9
0
 def test_badbehavior_chopped_message_vint(self):
     expected_pb = b'\x08\x96'
     with self.assertRaises(minipb.CodecError) as details:
         minipb.decode('V', expected_pb)
     self.assertIn('Unexpected end of message', details.exception.args[0])
Пример #10
0
 def test_badbehavior_chopped_message_str(self):
     expected_pb = b'\x12\x07\x74\x65\x73\x74\x69'
     with self.assertRaises(minipb.CodecError) as details:
         minipb.decode('xU', expected_pb)
     self.assertIn('Unexpected end of message', details.exception.args[0])