def MakeFileDescriptor(self, package): """Helper method to construct FileDescriptors. Creates FileDescriptor with a MessageDescriptor and an EnumDescriptor. Args: package: Package name to give new file descriptors. Returns: New FileDescriptor instance. """ enum_descriptor = descriptor.EnumDescriptor() enum_descriptor.name = u'MyEnum' message_descriptor = descriptor.MessageDescriptor() message_descriptor.name = u'MyMessage' service_descriptor = descriptor.ServiceDescriptor() service_descriptor.name = u'MyService' file_descriptor = descriptor.FileDescriptor() file_descriptor.package = package file_descriptor.enum_types = [enum_descriptor] file_descriptor.message_types = [message_descriptor] file_descriptor.service_types = [service_descriptor] return file_descriptor
def testEnumWithItems(self): class EnumWithItems(messages.Enum): A = 3 B = 1 C = 2 expected = descriptor.EnumDescriptor() expected.name = 'EnumWithItems' a = descriptor.EnumValueDescriptor() a.name = 'A' a.number = 3 b = descriptor.EnumValueDescriptor() b.name = 'B' b.number = 1 c = descriptor.EnumValueDescriptor() c.name = 'C' c.number = 2 expected.values = [b, c, a] described = descriptor.describe_enum(EnumWithItems) described.check_initialized() self.assertEquals(expected, described)
def testEmptyEnum(self): class EmptyEnum(messages.Enum): pass expected = descriptor.EnumDescriptor() expected.name = 'EmptyEnum' described = descriptor.describe_enum(EmptyEnum) described.check_initialized() self.assertEquals(expected, described)
def testEnums(self): """Test that enums are described.""" module = self.LoadModule( 'my.package', 'class Enum1(messages.Enum): pass\n' 'class Enum2(messages.Enum): pass\n') enum1 = descriptor.EnumDescriptor() enum1.name = 'Enum1' enum2 = descriptor.EnumDescriptor() enum2.name = 'Enum2' expected = descriptor.FileDescriptor() expected.package = 'my.package' expected.enum_types = [enum1, enum2] described = descriptor.describe_file(module) described.check_initialized() self.assertEquals(expected, described)
def testNestedEnum(self): class MyScope(messages.Message): class NestedEnum(messages.Enum): pass expected = descriptor.EnumDescriptor() expected.name = 'NestedEnum' described = descriptor.describe_enum(MyScope.NestedEnum) described.check_initialized() self.assertEquals(expected, described)
def testEnumField_InternalReference(self): enum = descriptor.EnumDescriptor() enum.name = 'Color' field = descriptor.FieldDescriptor() field.name = 'color' field.number = 1 field.label = descriptor.FieldDescriptor.Label.OPTIONAL field.variant = descriptor.FieldDescriptor.Variant.ENUM field.type_name = 'my_package.Color' self.DoMessageTest([field], enum_types=[enum])
def testDefineEnum_Empty(self): """Test defining an empty enum.""" enum_descriptor = descriptor.EnumDescriptor() enum_descriptor.name = 'Empty' enum_class = definition.define_enum(enum_descriptor, 'whatever') self.assertEquals('Empty', enum_class.__name__) self.assertEquals('whatever', enum_class.__module__) self.assertEquals(enum_descriptor, descriptor.describe_enum(enum_class))
def testNestedEnum(self): message = descriptor.MessageDescriptor() message.name = 'OuterMessage' inner_enum = descriptor.EnumDescriptor() inner_enum.name = 'InnerEnum' message.enum_types = [inner_enum] file_descriptor = descriptor.FileDescriptor() file_descriptor.message_types = [message] self.DoPythonTest(file_descriptor)
def testDefineEnum(self): """Test defining an enum.""" red = descriptor.EnumValueDescriptor() green = descriptor.EnumValueDescriptor() blue = descriptor.EnumValueDescriptor() red.name = 'RED' red.number = 1 green.name = 'GREEN' green.number = 2 blue.name = 'BLUE' blue.number = 3 enum_descriptor = descriptor.EnumDescriptor() enum_descriptor.name = 'Colors' enum_descriptor.values = [red, green, blue] enum_class = definition.define_enum(enum_descriptor, 'whatever') self.assertEquals('Colors', enum_class.__name__) self.assertEquals('whatever', enum_class.__module__) self.assertEquals(enum_descriptor, descriptor.describe_enum(enum_class))