def testGoldenMessage(self, message_module):
    # Proto3 doesn't have the "default_foo" members or foreign enums,
    # and doesn't preserve unknown fields, so for proto3 we use a golden
    # message that doesn't have these fields set.
    if message_module is unittest_pb2:
      golden_data = test_util.GoldenFileData(
          'golden_message_oneof_implemented')
    else:
      golden_data = test_util.GoldenFileData('golden_message_proto3')

    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    if message_module is unittest_pb2:
      test_util.ExpectAllFieldsSet(self, golden_message)
    self.assertEqual(golden_data, golden_message.SerializeToString())
    golden_copy = copy.deepcopy(golden_message)
    self.assertEqual(golden_data, golden_copy.SerializeToString())
  def testPickleSupport(self, message_module):
    golden_data = test_util.GoldenFileData('golden_message')
    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    pickled_message = pickle.dumps(golden_message)

    unpickled_message = pickle.loads(pickled_message)
    self.assertEqual(unpickled_message, golden_message)
 def testBadUtf8String(self, message_module):
   if api_implementation.Type() != 'python':
     self.skipTest("Skipping testBadUtf8String, currently only the python "
                   "api implementation raises UnicodeDecodeError when a "
                   "string field contains bad utf-8.")
   bad_utf8_data = test_util.GoldenFileData('bad_utf8_string')
   with self.assertRaises(UnicodeDecodeError) as context:
     message_module.TestAllTypes.FromString(bad_utf8_data)
   self.assertIn('TestAllTypes.optional_string', str(context.exception))
Exemplo n.º 4
0
 def testGoldenMessage(self):
     golden_data = test_util.GoldenFileData(
         'golden_message_oneof_implemented')
     golden_message = unittest_pb2.TestAllTypes()
     golden_message.ParseFromString(golden_data)
     test_util.ExpectAllFieldsSet(self, golden_message)
     self.assertEqual(golden_data, golden_message.SerializeToString())
     golden_copy = copy.deepcopy(golden_message)
     self.assertEqual(golden_data, golden_copy.SerializeToString())
 def testGoldenPackedExtensions(self):
   golden_data = test_util.GoldenFileData('golden_packed_fields_message')
   golden_message = unittest_pb2.TestPackedExtensions()
   golden_message.ParseFromString(golden_data)
   all_set = unittest_pb2.TestPackedExtensions()
   test_util.SetAllPackedExtensions(all_set)
   self.assertEqual(all_set, golden_message)
   self.assertEqual(golden_data, all_set.SerializeToString())
   golden_copy = copy.deepcopy(golden_message)
   self.assertEqual(golden_data, golden_copy.SerializeToString())
 def testGoldenPackedMessage(self, message_module):
   golden_data = test_util.GoldenFileData('golden_packed_fields_message')
   golden_message = message_module.TestPackedTypes()
   golden_message.ParseFromString(golden_data)
   all_set = message_module.TestPackedTypes()
   test_util.SetAllPackedFields(all_set)
   self.assertEqual(all_set, golden_message)
   self.assertEqual(golden_data, all_set.SerializeToString())
   golden_copy = copy.deepcopy(golden_message)
   self.assertEqual(golden_data, golden_copy.SerializeToString())