def testgetprototype(self):
   db = descriptor_database.descriptordatabase()
   pool = descriptor_pool.descriptorpool(db)
   db.add(self.factory_test1_fd)
   db.add(self.factory_test2_fd)
   factory = message_factory.messagefactory()
   cls = factory.getprototype(pool.findmessagetypebyname(
       'net.proto2.python.internal.factory2message'))
   self.assertisnot(cls, factory_test2_pb2.factory2message)
   self._exercisedynamicclass(cls)
   cls2 = factory.getprototype(pool.findmessagetypebyname(
       'net.proto2.python.internal.factory2message'))
   self.assertis(cls, cls2)
Ejemplo n.º 2
0
    """

    if descriptor.full_name not in self._classes:
      result_class = reflection.generatedprotocolmessagetype(
          descriptor.name.encode('ascii', 'ignore'),
          (message.message,),
          {'descriptor': descriptor})
      self._classes[descriptor.full_name] = result_class
      for field in descriptor.fields:
        if field.message_type:
          self.getprototype(field.message_type)
    return self._classes[descriptor.full_name]


_db = descriptor_database.descriptordatabase()
_pool = descriptor_pool.descriptorpool(_db)
_factory = messagefactory()


def getmessages(file_protos):
  """builds a dictionary of all the messages available in a set of files.

  args:
    file_protos: a sequence of file protos to build messages out of.

  returns:
    a dictionary containing all the message types in the files mapping the
    fully qualified name to a message subclass for the descriptor.
  """

  result = {}