def testPackageMappingsWithPackage(self):
     this_module_name = util.get_package_for_module(__name__)
     full_type_name = 'MessageWithEnum.ThisEnum'
     full_key = '%s.%s' % (this_module_name, full_type_name)
     this_module = sys.modules[__name__]
     new_package = 'new_package'
     try:
         setattr(this_module, 'package', new_package)
         new_key = '%s.%s' % (new_package, full_type_name)
         self.assertEqual(
             new_key, encoding._GetTypeKey(MessageWithEnum.ThisEnum, ''))
         self.assertEqual(
             full_key,
             encoding._GetTypeKey(MessageWithEnum.ThisEnum, new_package))
     finally:
         delattr(this_module, 'package')
 def testPackageMappingsWithPackage(self):
     this_module_name = util.get_package_for_module(__name__)
     full_type_name = 'MessageWithEnum.ThisEnum'
     full_key = '%s.%s' % (this_module_name, full_type_name)
     this_module = sys.modules[__name__]
     new_package = 'new_package'
     try:
         setattr(this_module, 'package', new_package)
         new_key = '%s.%s' % (new_package, full_type_name)
         self.assertEqual(
             new_key,
             encoding._GetTypeKey(MessageWithEnum.ThisEnum, ''))
         self.assertEqual(
             full_key,
             encoding._GetTypeKey(MessageWithEnum.ThisEnum, new_package))
     finally:
         delattr(this_module, 'package')
def describe_file(module):
    """Build a file from a specified Python module.

    Args:
      module: Python module to describe.

    Returns:
      Initialized FileDescriptor instance describing the module.
    """
    descriptor = FileDescriptor()
    descriptor.package = util.get_package_for_module(module)

    if not descriptor.package:
        descriptor.package = None

    message_descriptors = []
    enum_descriptors = []

    # Need to iterate over all top level attributes of the module looking for
    # message and enum definitions.  Each definition must be itself described.
    for name in sorted(dir(module)):
        value = getattr(module, name)

        if isinstance(value, type):
            if issubclass(value, messages.Message):
                message_descriptors.append(describe_message(value))

            elif issubclass(value, messages.Enum):
                enum_descriptors.append(describe_enum(value))

    if message_descriptors:
        descriptor.message_types = message_descriptors

    if enum_descriptors:
        descriptor.enum_types = enum_descriptors

    return descriptor
Beispiel #4
0
def describe_file(module):
    """Build a file from a specified Python module.

    Args:
      module: Python module to describe.

    Returns:
      Initialized FileDescriptor instance describing the module.
    """
    descriptor = FileDescriptor()
    descriptor.package = util.get_package_for_module(module)

    if not descriptor.package:
        descriptor.package = None

    message_descriptors = []
    enum_descriptors = []

    # Need to iterate over all top level attributes of the module looking for
    # message and enum definitions.  Each definition must be itself described.
    for name in sorted(dir(module)):
        value = getattr(module, name)

        if isinstance(value, type):
            if issubclass(value, messages.Message):
                message_descriptors.append(describe_message(value))

            elif issubclass(value, messages.Enum):
                enum_descriptors.append(describe_enum(value))

    if message_descriptors:
        descriptor.message_types = message_descriptors

    if enum_descriptors:
        descriptor.enum_types = enum_descriptors

    return descriptor
Beispiel #5
0
 def testModuleNameNotInSys(self):
     self.assertPackageEquals(None,
                              util.get_package_for_module('service_module'))
Beispiel #6
0
 def testPackageMappingsNoPackage(self):
     this_module_name = util.get_package_for_module(__name__)
     full_type_name = 'MessageWithEnum.ThisEnum'
     full_key = '%s.%s' % (this_module_name, full_type_name)
     self.assertEqual(full_key,
                      encoding._GetTypeKey(MessageWithEnum.ThisEnum, ''))
Beispiel #7
0
 def testNoPackageAtAll(self):
     module = self.CreateModule('__main__')
     self.assertPackageEquals(
         '__main__', util.get_package_for_module(module))
Beispiel #8
0
 def testNoExtension(self):
     module = self.CreateModule('__main__')
     module.__file__ = '/bing/blam/bloom/blarm/my_file'
     self.assertPackageEquals(
         'my_file', util.get_package_for_module(module))
Beispiel #9
0
 def testIsMainCompiled(self):
     module = self.CreateModule('__main__')
     module.__file__ = '/bing/blam/bloom/blarm/my_file.pyc'
     self.assertPackageEquals(
         'my_file', util.get_package_for_module(module))
Beispiel #10
0
 def testHasModuleName(self):
     module = self.CreateModule('service_module')
     self.assertPackageEquals('service_module',
                              util.get_package_for_module(module))
Beispiel #11
0
 def testHasPackage(self):
     module = self.CreateModule('service_module')
     module.package = 'my_package'
     self.assertPackageEquals(
         'my_package', util.get_package_for_module(module))
Beispiel #12
0
 def testModuleNameNotInSys(self):
     self.assertPackageEquals(None,
                              util.get_package_for_module('service_module'))
Beispiel #13
0
 def testHasPackage(self):
     module = self.CreateModule('service_module')
     module.package = 'my_package'
     self.assertPackageEquals(
         'my_package', util.get_package_for_module(module))
Beispiel #14
0
 def testNoPackageAtAll(self):
     module = self.CreateModule('__main__')
     self.assertPackageEquals(
         '__main__', util.get_package_for_module(module))
Beispiel #15
0
 def testNoExtension(self):
     module = self.CreateModule('__main__')
     module.__file__ = '/bing/blam/bloom/blarm/my_file'
     self.assertPackageEquals(
         'my_file', util.get_package_for_module(module))
Beispiel #16
0
 def testIsMainCompiled(self):
     module = self.CreateModule('__main__')
     module.__file__ = '/bing/blam/bloom/blarm/my_file.pyc'
     self.assertPackageEquals(
         'my_file', util.get_package_for_module(module))
Beispiel #17
0
 def testHasModuleName(self):
     module = self.CreateModule('service_module')
     self.assertPackageEquals('service_module',
                              util.get_package_for_module(module))