| Index: third_party/protobuf/python/google/protobuf/internal/descriptor_pool_test.py
|
| diff --git a/third_party/protobuf/python/google/protobuf/internal/descriptor_pool_test.py b/third_party/protobuf/python/google/protobuf/internal/descriptor_pool_test.py
|
| index 6a13e0bcf0b9796d8a9e734af22e797850df2b8e..d4de2d812ade05eebfd07fcaf6205d8d02286573 100644
|
| --- a/third_party/protobuf/python/google/protobuf/internal/descriptor_pool_test.py
|
| +++ b/third_party/protobuf/python/google/protobuf/internal/descriptor_pool_test.py
|
| @@ -51,6 +51,7 @@ from google.protobuf.internal import descriptor_pool_test1_pb2
|
| from google.protobuf.internal import descriptor_pool_test2_pb2
|
| from google.protobuf.internal import factory_test1_pb2
|
| from google.protobuf.internal import factory_test2_pb2
|
| +from google.protobuf.internal import file_options_test_pb2
|
| from google.protobuf.internal import more_messages_pb2
|
| from google.protobuf import descriptor
|
| from google.protobuf import descriptor_database
|
| @@ -118,6 +119,7 @@ class DescriptorPoolTest(unittest.TestCase):
|
| self.assertEqual('google.protobuf.python.internal.Factory1Message',
|
| msg1.full_name)
|
| self.assertEqual(None, msg1.containing_type)
|
| + self.assertFalse(msg1.has_options)
|
|
|
| nested_msg1 = msg1.nested_types[0]
|
| self.assertEqual('NestedFactory1Message', nested_msg1.name)
|
| @@ -201,6 +203,7 @@ class DescriptorPoolTest(unittest.TestCase):
|
| self.assertIsInstance(enum1, descriptor.EnumDescriptor)
|
| self.assertEqual(0, enum1.values_by_name['FACTORY_1_VALUE_0'].number)
|
| self.assertEqual(1, enum1.values_by_name['FACTORY_1_VALUE_1'].number)
|
| + self.assertFalse(enum1.has_options)
|
|
|
| nested_enum1 = self.pool.FindEnumTypeByName(
|
| 'google.protobuf.python.internal.Factory1Message.NestedFactory1Enum')
|
| @@ -233,6 +236,8 @@ class DescriptorPoolTest(unittest.TestCase):
|
| 'google.protobuf.python.internal.Factory1Message.list_value')
|
| self.assertEqual(field.name, 'list_value')
|
| self.assertEqual(field.label, field.LABEL_REPEATED)
|
| + self.assertFalse(field.has_options)
|
| +
|
| with self.assertRaises(KeyError):
|
| self.pool.FindFieldByName('Does not exist')
|
|
|
| @@ -447,6 +452,7 @@ class EnumField(object):
|
| test.assertTrue(field_desc.has_default_value)
|
| test.assertEqual(enum_desc.values_by_name[self.default_value].number,
|
| field_desc.default_value)
|
| + test.assertFalse(enum_desc.values_by_name[self.default_value].has_options)
|
| test.assertEqual(msg_desc, field_desc.containing_type)
|
| test.assertEqual(enum_desc, field_desc.enum_type)
|
|
|
| @@ -630,6 +636,23 @@ class AddDescriptorTest(unittest.TestCase):
|
| self.assertEqual(pool.FindMessageTypeByName('package.Message').name,
|
| 'Message')
|
|
|
| + def testFileDescriptorOptionsWithCustomDescriptorPool(self):
|
| + # Create a descriptor pool, and add a new FileDescriptorProto to it.
|
| + pool = descriptor_pool.DescriptorPool()
|
| + file_name = 'file_descriptor_options_with_custom_descriptor_pool.proto'
|
| + file_descriptor_proto = descriptor_pb2.FileDescriptorProto(name=file_name)
|
| + extension_id = file_options_test_pb2.foo_options
|
| + file_descriptor_proto.options.Extensions[extension_id].foo_name = 'foo'
|
| + pool.Add(file_descriptor_proto)
|
| + # The options set on the FileDescriptorProto should be available in the
|
| + # descriptor even if they contain extensions that cannot be deserialized
|
| + # using the pool.
|
| + file_descriptor = pool.FindFileByName(file_name)
|
| + options = file_descriptor.GetOptions()
|
| + self.assertEqual('foo', options.Extensions[extension_id].foo_name)
|
| + # The object returned by GetOptions() is cached.
|
| + self.assertIs(options, file_descriptor.GetOptions())
|
| +
|
|
|
| @unittest.skipIf(
|
| api_implementation.Type() != 'cpp',
|
|
|