def setup(self):
   self.my_file = descriptor.filedescriptor(
       name='some/filename/some.proto',
       package='protobuf_unittest'
       )
   self.my_enum = descriptor.enumdescriptor(
       name='foreignenum',
       full_name='protobuf_unittest.foreignenum',
       filename=none,
       file=self.my_file,
       values=[
         descriptor.enumvaluedescriptor(name='foreign_foo', index=0, number=4),
         descriptor.enumvaluedescriptor(name='foreign_bar', index=1, number=5),
         descriptor.enumvaluedescriptor(name='foreign_baz', index=2, number=6),
       ])
   self.my_message = descriptor.descriptor(
       name='nestedmessage',
       full_name='protobuf_unittest.testalltypes.nestedmessage',
       filename=none,
       file=self.my_file,
       containing_type=none,
       fields=[
         descriptor.fielddescriptor(
           name='bb',
           full_name='protobuf_unittest.testalltypes.nestedmessage.bb',
           index=0, number=1,
           type=5, cpp_type=1, label=1,
           has_default_value=false, default_value=0,
           message_type=none, enum_type=none, containing_type=none,
           is_extension=false, extension_scope=none),
       ],
       nested_types=[],
       enum_types=[
         self.my_enum,
       ],
       extensions=[])
   self.my_method = descriptor.methoddescriptor(
       name='bar',
       full_name='protobuf_unittest.testservice.bar',
       index=0,
       containing_service=none,
       input_type=none,
       output_type=none)
   self.my_service = descriptor.servicedescriptor(
       name='testservicewithoptions',
       full_name='protobuf_unittest.testservicewithoptions',
       file=self.my_file,
       index=0,
       methods=[
           self.my_method
       ])
  def _makeenumvaluedescriptor(self, value_proto, index):
    """creates a enum value descriptor object from a enum value proto.

    args:
      value_proto: the proto describing the enum value.
      index: the index of the enum value.

    returns:
      an initialized enumvaluedescriptor object.
    """

    return descriptor.enumvaluedescriptor(
        name=value_proto.name,
        index=index,
        number=value_proto.number,
        options=value_proto.options,
        type=none)