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)
 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)
   self.unknown_fields = self.empty_message._unknown_fields
  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)
 def testcopyfrom(self):
   message = unittest_pb2.testemptymessage()
   message.copyfrom(self.empty_message)
   self.assertequal(self.unknown_fields, message._unknown_fields)