示例#1
0
 def test_some_more_of_a_type(self):
     result = dict(
         ModuleTypesTools.get_omitted_modules_by_type(
             TestPhysicalModuleDescriber(
                 map=dict({
                     "A": (
                         PhysicalModuleTypes.Implementation,
                         PhysicalModuleTypes.Interface,
                         PhysicalModuleTypes.Configuration,
                     ),
                     "B": (
                         PhysicalModuleTypes.Implementation,
                         PhysicalModuleTypes.Interface,
                         PhysicalModuleTypes.Configuration,
                     )
                 }),
                 default=(PhysicalModuleTypes.Framework, )),
             DefaultModuleListSupply(modules=[
                 "B",
                 "A",
             ]), AllDependencyFilterConfiguration))
     self.assertEquals(
         set([
             ("Implementation", "Interface", "Configuration"),
         ]), set(result.keys()))
     self.assertEquals([("A", 0), ("B", 0)],
                       sorted(result[("Implementation", "Interface",
                                      "Configuration")]))
示例#2
0
 def test_null(self):
     self.assertEquals([],
                       sorted(
                           ModuleTypesTools.get_omitted_modules_by_type(
                               TestPhysicalModuleDescriber(
                                   map=dict(),
                                   default=PhysicalModuleTypes.Framework),
                               DefaultModuleListSupply(modules=[]),
                               AllDependencyFilterConfiguration)))
示例#3
0
 def _is_legal_dependency(self, source, target):
     
     if not config_module_list_supply.is_external_module(target):
         source_types = config_physical_module_describer.get_physical_module_types(source)
         target_types = config_physical_module_describer.get_physical_module_types(target)
         
         # TODO Modulgruppen von source und target bestimmen und vergleichen
         # und zwar die Ebene bestimmen, auf der sie sich unterscheiden
         same_module_group = self.__module_grouper.get_node_group_prefix(source) == self.__module_grouper.get_node_group_prefix(target)             
         is_legal = any(map(lambda source_type:
                 ModuleTypesTools.any_in_list(target_types, 
                     self.allowed_target_types(source_type, same_module_group)), 
                 source_types))
         self.__logger.debug("%s(%s)->%s(%s):%s", source, PhysicalModuleTypes.names(source_types), 
                      target, PhysicalModuleTypes.names(target_types), is_legal)
         return is_legal
     else:
         self.__logger.info("%s->%s (external)", source, target)
         return True
示例#4
0
 def get_node_color(self, node):
     module_types = config_physical_module_describer.get_physical_module_types(node)
     module_type = ModuleTypesTools.get_regular_type(module_types)
     if module_type == None:
         return Colors.PURPLE
     else:
         # TODO use a map  
         if module_type in [PhysicalModuleTypes.ImplementationTest, PhysicalModuleTypes.InterfaceTest]:
             return Colors.SALMON
         elif module_type == PhysicalModuleTypes.Configurator:
             return Colors.YELLOW
         elif module_type == PhysicalModuleTypes.Configuration:
             return Colors.RED
         elif module_type in [PhysicalModuleTypes.Interface]:
             return Colors.DARKGREEN
         elif module_type in [PhysicalModuleTypes.InterfaceUtility]:
             return Colors.GREEN
         elif module_type in [PhysicalModuleTypes.InterfaceBaseImplementation, PhysicalModuleTypes.InterfaceDefaultImplementation]:
             return Colors.GREENYELLOW
         elif module_type in [PhysicalModuleTypes.Marshaling, PhysicalModuleTypes.InterfaceWrapper, PhysicalModuleTypes.ImplementationWrapper]:
             return Colors.RED
         return Colors.WHITE
    def _get_omitted_modules_list(self):
        grouped_modules = ModuleTypesTools.get_omitted_modules_by_type(
            physical_module_describer=config_physical_module_describer,
            module_list_supply=config_module_list_supply,
            dependency_filter_config_class=config_dependency_filter_config_class
        )
        grouped_modules = list(grouped_modules)
        grouped_formatted_modules = ((", ".join(keyval), ", ".join(
            "%s (%i)" % (module, size)
            for (module, size
                 ) in sorted(type_modules, key=lambda (module, size): size)))
                                     for (keyval,
                                          type_modules) in grouped_modules
                                     if len(keyval))
        return "<ul>%s</ul>" % ("\n".join(
            "<li>type <b>%s</b>: %s</li>" % (types, modules)
            for (types, modules) in grouped_formatted_modules))

    def _get_ungrouped_modules_list(self):
        # TODO Das ist eigentlich nicht EPM-spezifisch
        return ModuleListHelper.get_ungrouped_modules(
            module_list_supply=config_module_list_supply,
            module_grouper_class=config_module_grouper_class)

    def _write_config_info(self):
        print >> self._get_output_file(
        ), "<p>Configuration information:<br/><ul>"
        print >> self._get_output_file(
        ), "<li>Modules partially or completely omitted from output: %s</li>" % (
            self._get_omitted_modules_list(), )
        print >> self._get_output_file(
        ), "<li>Modules without any group: %s</li>" % (", ".join(
            sorted(self._get_ungrouped_modules_list())), )
        print >> self._get_output_file(), "</ul><hr/>"

    def _write_postamble(self):
        self._write_config_info()
        HTMLGeneratedGraphOverviewWriter._write_postamble(self)
示例#6
0
    def skip_module_as_source(self, source):
        module_types = self.__physical_module_describer.get_physical_module_types(source)

        type_skip = ModuleTypesTools.all_in_list(module_types, self.get_skip_module_types_as_source())

        return type_skip