Ejemplo n.º 1
0
    def testMergeFrom(self):
        message = unittest_pb2.TestAllTypes()
        message.optional_int32 = 1
        message.optional_uint32 = 2
        source = unittest_pb2.TestEmptyMessage()
        source.ParseFromString(message.SerializeToString())

        message.ClearField('optional_int32')
        message.optional_int64 = 3
        message.optional_uint32 = 4
        destination = unittest_pb2.TestEmptyMessage()
        unknown_fields = destination.UnknownFields()
        self.assertEqual(0, len(unknown_fields))
        destination.ParseFromString(message.SerializeToString())
        # ParseFromString clears the message thus unknown fields is invalid.
        with self.assertRaises(ValueError) as context:
            len(unknown_fields)
        self.assertIn('UnknownFields does not exist.', str(context.exception))
        unknown_fields = destination.UnknownFields()
        self.assertEqual(2, len(unknown_fields))
        destination.MergeFrom(source)
        self.assertEqual(4, len(unknown_fields))
        # Check that the fields where correctly merged, even stored in the unknown
        # fields set.
        message.ParseFromString(destination.SerializeToString())
        self.assertEqual(message.optional_int32, 1)
        self.assertEqual(message.optional_uint32, 2)
        self.assertEqual(message.optional_int64, 3)
Ejemplo n.º 2
0
    def testMergeFrom(self):
        message = unittest_pb2.TestAllTypes()
        message.optional_int32 = 1
        message.optional_uint32 = 2
        source = unittest_pb2.TestEmptyMessage()
        source.ParseFromString(message.SerializeToString())

        message.ClearField('optional_int32')
        message.optional_int64 = 3
        message.optional_uint32 = 4
        destination = unittest_pb2.TestEmptyMessage()
        unknown_field_set = unknown_fields.UnknownFieldSet(destination)
        self.assertEqual(0, len(unknown_field_set))
        destination.ParseFromString(message.SerializeToString())
        self.assertEqual(0, len(unknown_field_set))
        unknown_field_set = unknown_fields.UnknownFieldSet(destination)
        self.assertEqual(2, len(unknown_field_set))
        destination.MergeFrom(source)
        self.assertEqual(2, len(unknown_field_set))
        # Check that the fields where correctly merged, even stored in the unknown
        # fields set.
        message.ParseFromString(destination.SerializeToString())
        self.assertEqual(message.optional_int32, 1)
        self.assertEqual(message.optional_uint32, 2)
        self.assertEqual(message.optional_int64, 3)
Ejemplo n.º 3
0
 def setUp(self):
     self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
     self.all_fields = unittest_pb2.TestAllTypes()
     test_util.SetAllFields(self.all_fields)
     self.all_fields_data = self.all_fields.SerializeToString()
     self.empty_message = unittest_pb2.TestEmptyMessage()
     self.empty_message.ParseFromString(self.all_fields_data)
Ejemplo n.º 4
0
 def testSubUnknownFields(self):
     message = unittest_pb2.TestAllTypes()
     message.optionalgroup.a = 123
     destination = unittest_pb2.TestEmptyMessage()
     destination.ParseFromString(message.SerializeToString())
     sub_unknown_fields = destination.UnknownFields()[0].data
     self.assertEqual(1, len(sub_unknown_fields))
     self.assertEqual(sub_unknown_fields[0].data, 123)
     destination.Clear()
     with self.assertRaises(ValueError) as context:
         len(sub_unknown_fields)
     self.assertIn('UnknownFields does not exist.', str(context.exception))
     with self.assertRaises(ValueError) as context:
         # pylint: disable=pointless-statement
         sub_unknown_fields[0]
     self.assertIn('UnknownFields does not exist.', str(context.exception))
     message.Clear()
     message.optional_uint32 = 456
     nested_message = unittest_pb2.NestedTestAllTypes()
     nested_message.payload.optional_nested_message.ParseFromString(
         message.SerializeToString())
     unknown_fields = (
         nested_message.payload.optional_nested_message.UnknownFields())
     self.assertEqual(unknown_fields[0].data, 456)
     nested_message.ClearField('payload')
     self.assertEqual(unknown_fields[0].data, 456)
     unknown_fields = (
         nested_message.payload.optional_nested_message.UnknownFields())
     self.assertEqual(0, len(unknown_fields))
Ejemplo n.º 5
0
 def testSubUnknownFields(self):
     message = unittest_pb2.TestAllTypes()
     message.optionalgroup.a = 123
     destination = unittest_pb2.TestEmptyMessage()
     destination.ParseFromString(message.SerializeToString())
     sub_unknown_fields = unknown_fields.UnknownFieldSet(
         destination)[0].data
     self.assertEqual(1, len(sub_unknown_fields))
     self.assertEqual(sub_unknown_fields[0].data, 123)
     destination.Clear()
     self.assertEqual(1, len(sub_unknown_fields))
     self.assertEqual(sub_unknown_fields[0].data, 123)
     message.Clear()
     message.optional_uint32 = 456
     nested_message = unittest_pb2.NestedTestAllTypes()
     nested_message.payload.optional_nested_message.ParseFromString(
         message.SerializeToString())
     unknown_field_set = unknown_fields.UnknownFieldSet(
         nested_message.payload.optional_nested_message)
     self.assertEqual(unknown_field_set[0].data, 456)
     nested_message.ClearField('payload')
     self.assertEqual(unknown_field_set[0].data, 456)
     unknown_field_set = unknown_fields.UnknownFieldSet(
         nested_message.payload.optional_nested_message)
     self.assertEqual(0, len(unknown_field_set))
Ejemplo n.º 6
0
  def testEquals(self):
    message = unittest_pb2.TestEmptyMessage()
    message.ParseFromString(self.all_fields_data)
    self.assertEqual(self.empty_message, message)

    self.all_fields.ClearField('optional_string')
    message.ParseFromString(self.all_fields.SerializeToString())
    self.assertNotEqual(self.empty_message, message)
Ejemplo n.º 7
0
  def testMergeFrom(self):
    message = unittest_pb2.TestAllTypes()
    message.optional_int32 = 1
    message.optional_uint32 = 2
    source = unittest_pb2.TestEmptyMessage()
    source.ParseFromString(message.SerializeToString())

    message.ClearField('optional_int32')
    message.optional_int64 = 3
    message.optional_uint32 = 4
    destination = unittest_pb2.TestEmptyMessage()
    destination.ParseFromString(message.SerializeToString())
    unknown_fields = destination._unknown_fields[:]

    destination.MergeFrom(source)
    self.assertEqual(unknown_fields + source._unknown_fields,
                     destination._unknown_fields)
Ejemplo n.º 8
0
 def testUnknownField(self):
     message = unittest_pb2.TestAllTypes()
     message.optional_int32 = 123
     destination = unittest_pb2.TestEmptyMessage()
     destination.ParseFromString(message.SerializeToString())
     unknown_field = unknown_fields.UnknownFieldSet(destination)[0]
     destination.Clear()
     self.assertEqual(unknown_field.data, 123)
Ejemplo n.º 9
0
 def setUp(self):
   self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
   self.all_fields = unittest_pb2.TestAllTypes()
   test_util.SetAllFields(self.all_fields)
   self.all_fields_data = self.all_fields.SerializeToString()
   self.empty_message = unittest_pb2.TestEmptyMessage()
   self.empty_message.ParseFromString(self.all_fields_data)
   if api_implementation.Type() != 'cpp':
     # _unknown_fields is an implementation detail.
     self.unknown_fields = self.empty_message._unknown_fields
Ejemplo n.º 10
0
 def testUnknownField(self):
     message = unittest_pb2.TestAllTypes()
     message.optional_int32 = 123
     destination = unittest_pb2.TestEmptyMessage()
     destination.ParseFromString(message.SerializeToString())
     unknown_field = destination.UnknownFields()[0]
     destination.Clear()
     with self.assertRaises(ValueError) as context:
         unknown_field.data  # pylint: disable=pointless-statement
     self.assertIn('The parent message might be cleared.',
                   str(context.exception))
Ejemplo n.º 11
0
 def testCopyFrom(self):
   message = unittest_pb2.TestEmptyMessage()
   message.CopyFrom(self.empty_message)
   self.assertEqual(self.unknown_fields, message._unknown_fields)
Ejemplo n.º 12
0
 def testCopyFrom(self):
     message = unittest_pb2.TestEmptyMessage()
     message.CopyFrom(self.empty_message)
     self.assertEqual(message.SerializeToString(), self.all_fields_data)
Ejemplo n.º 13
0
 def testUnknownFieldPrinting(self):
     populated = unittest_pb2.TestAllTypes()
     test_util.SetAllNonLazyFields(populated)
     empty = unittest_pb2.TestEmptyMessage()
     empty.ParseFromString(populated.SerializeToString())
     self.assertEqual(str(empty), '')