コード例 #1
0
    def test_option_values(self):
        """test for ancestor, associated and module options"""
        handler = DiadefsHandler(Config())
        df_h = DiaDefGenerator(Linker(PROJECT), handler)
        cl_config = Config()
        cl_config.classes = ['Specialization']
        cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
        self.assertEqual((0, 0), df_h._get_levels())
        self.assertEqual(False, df_h.module_names)
        self.assertEqual((-1, -1), cl_h._get_levels())
        self.assertEqual(True, cl_h.module_names)
        for hndl in [df_h, cl_h]:
            hndl.config.all_ancestors = True
            hndl.config.all_associated = True
            hndl.config.module_names = True
            hndl._set_default_options()
            self.assertEqual((-1, -1), hndl._get_levels())
            self.assertEqual(True, hndl.module_names)
        handler = DiadefsHandler(Config())
        df_h = DiaDefGenerator(Linker(PROJECT), handler)
        cl_config = Config()
        cl_config.classes = ['Specialization']
        cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
        for hndl in [df_h, cl_h]:
            hndl.config.show_ancestors = 2
            hndl.config.show_associated = 1
            hndl.config.module_names = False
            hndl._set_default_options()
            self.assertEqual((2, 1), hndl._get_levels())
            self.assertEqual(False, hndl.module_names)

    #def test_default_values(self):
        """test efault values for package or class diagrams"""
コード例 #2
0
def test_option_values(HANDLER, PROJECT):
    """test for ancestor, associated and module options"""
    df_h = DiaDefGenerator(Linker(PROJECT), HANDLER)
    cl_config = Config()
    cl_config.classes = ['Specialization']
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config) )
    assert (0, 0) == df_h._get_levels()
    assert False == df_h.module_names
    assert (-1, -1) == cl_h._get_levels()
    assert True == cl_h.module_names
    for hndl in [df_h, cl_h]:
        hndl.config.all_ancestors = True
        hndl.config.all_associated = True
        hndl.config.module_names = True
        hndl._set_default_options()
        assert (-1, -1) == hndl._get_levels()
        assert True == hndl.module_names
    handler = DiadefsHandler( Config())
    df_h = DiaDefGenerator(Linker(PROJECT), handler)
    cl_config = Config()
    cl_config.classes = ['Specialization']
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config) )
    for hndl in [df_h, cl_h]:
        hndl.config.show_ancestors = 2
        hndl.config.show_associated = 1
        hndl.config.module_names = False
        hndl._set_default_options()
        assert (2, 1) == hndl._get_levels()
        assert False == hndl.module_names

#def test_default_values():
    """test efault values for package or class diagrams"""
コード例 #3
0
ファイル: test_diadefs.py プロジェクト: AWhetter/pylint
def test_option_values(default_config: PyreverseConfig,
                       HANDLER: DiadefsHandler, PROJECT: Project) -> None:
    """Test for ancestor, associated and module options."""
    df_h = DiaDefGenerator(Linker(PROJECT), HANDLER)
    cl_config = default_config
    cl_config.classes = ["Specialization"]
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
    assert df_h._get_levels() == (0, 0)
    assert not df_h.module_names
    assert cl_h._get_levels() == (-1, -1)
    assert cl_h.module_names
    for hndl in (df_h, cl_h):
        hndl.config.all_ancestors = True
        hndl.config.all_associated = True
        hndl.config.module_names = True
        hndl._set_default_options()
        assert hndl._get_levels() == (-1, -1)
        assert hndl.module_names
    handler = DiadefsHandler(default_config)
    df_h = DiaDefGenerator(Linker(PROJECT), handler)
    cl_config = default_config
    cl_config.classes = ["Specialization"]
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
    for hndl in (df_h, cl_h):
        hndl.config.show_ancestors = 2
        hndl.config.show_associated = 1
        hndl.config.module_names = False
        hndl._set_default_options()
        assert hndl._get_levels() == (2, 1)
        assert not hndl.module_names
コード例 #4
0
def test_option_values(HANDLER, PROJECT):
    """test for ancestor, associated and module options"""
    df_h = DiaDefGenerator(Linker(PROJECT), HANDLER)
    cl_config = Config()
    cl_config.classes = ["Specialization"]
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
    assert df_h._get_levels() == (0, 0)
    assert not df_h.module_names
    assert cl_h._get_levels() == (-1, -1)
    assert cl_h.module_names
    for hndl in [df_h, cl_h]:
        hndl.config.all_ancestors = True
        hndl.config.all_associated = True
        hndl.config.module_names = True
        hndl._set_default_options()
        assert hndl._get_levels() == (-1, -1)
        assert hndl.module_names
    handler = DiadefsHandler(Config())
    df_h = DiaDefGenerator(Linker(PROJECT), handler)
    cl_config = Config()
    cl_config.classes = ["Specialization"]
    cl_h = DiaDefGenerator(Linker(PROJECT), DiadefsHandler(cl_config))
    for hndl in [df_h, cl_h]:
        hndl.config.show_ancestors = 2
        hndl.config.show_associated = 1
        hndl.config.module_names = False
        hndl._set_default_options()
        assert hndl._get_levels() == (2, 1)
        assert not hndl.module_names
コード例 #5
0
ファイル: test_diadefs.py プロジェクト: AWhetter/pylint
def test_known_values1(HANDLER: DiadefsHandler, PROJECT: Project) -> None:
    dd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)
    assert len(dd) == 2
    keys = [d.TYPE for d in dd]
    assert keys == ["package", "class"]
    pd = dd[0]
    assert pd.title == "packages No Name"
    modules = sorted(
        (isinstance(m.node, nodes.Module), m.title) for m in pd.objects)
    assert modules == [
        (True, "data"),
        (True, "data.clientmodule_test"),
        (True, "data.property_pattern"),
        (True, "data.suppliermodule_test"),
    ]
    cd = dd[1]
    assert cd.title == "classes No Name"
    classes = _process_classes(cd.objects)
    assert classes == [
        (True, "Ancestor"),
        (True, "CustomException"),
        (True, "DoNothing"),
        (True, "DoNothing2"),
        (True, "DoSomething"),
        (True, "Interface"),
        (True, "PropertyPatterns"),
        (True, "Specialization"),
    ]
コード例 #6
0
ファイル: test_diadefs.py プロジェクト: AWhetter/pylint
 def test_exctract_relations(self, HANDLER: DiadefsHandler,
                             PROJECT: Project) -> None:
     """Test extract_relations between classes."""
     cd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)[1]
     cd.extract_relationships()
     relations = _process_relations(cd.relationships)
     assert relations == self._should_rels
コード例 #7
0
ファイル: main.py プロジェクト: 2964536830/book-reptile
    def run(self, args):
        """checking arguments and run project"""
        if not args:
            print(self.help())
            return 1
        # insert current working directory to the python path to recognize
        # dependencies to local modules even if cwd is not in the PYTHONPATH
        sys.path.insert(0, os.getcwd())
        try:
            project = project_from_files(
                args,
                project_name=self.config.project,
                black_list=self.config.black_list,
            )
            linker = Linker(project, tag=True)
            handler = DiadefsHandler(self.config)
            diadefs = handler.get_diadefs(project, linker)
        finally:
            sys.path.pop(0)

        if self.config.output_format == "vcg":
            writer.VCGWriter(self.config).write(diadefs)
        else:
            writer.DotWriter(self.config).write(diadefs)
        return 0
コード例 #8
0
 def test_known_values2(self):
     HANDLER.config.module_names = False
     cd = ClassDiadefGenerator(Linker(PROJECT), HANDLER).class_diagram(
         PROJECT, 'data.clientmodule_test.Specialization')
     self.assertEqual(cd.title, 'data.clientmodule_test.Specialization')
     classes = _process_classes(cd.objects)
     self.assertEqual(classes, [(True, 'Ancestor'), (True, 'DoNothing'),
                                (True, 'Specialization')])
コード例 #9
0
def test_regression_dataclasses_inference(HANDLER):
    project_path = Path("regrtest_data") / "dataclasses_pyreverse"
    path = get_project(str(project_path))

    cdg = ClassDiadefGenerator(Linker(path), HANDLER)
    special = "regrtest_data.dataclasses_pyreverse.InventoryItem"
    cd = cdg.class_diagram(path, special)
    assert cd.title == special
コード例 #10
0
def test_property_handling(default_config: PyreverseConfig,
                           get_project: Callable) -> None:
    project = get_project("data.property_pattern")
    class_diagram = DefaultDiadefGenerator(
        Linker(project), DiadefsHandler(default_config)).visit(project)[0]
    obj = class_diagram.classe("PropertyPatterns")
    assert len(class_diagram.get_methods(obj.node)) == 0
    assert class_diagram.get_attrs(obj.node) == ["prop1", "prop2"]
コード例 #11
0
 def setUpClass(cls):
     project = get_project(os.path.join(os.path.dirname(__file__), 'data'))
     linker = Linker(project)
     handler = DiadefsHandler(CONFIG)
     dd = DefaultDiadefGenerator(linker, handler).visit(project)
     for diagram in dd:
         diagram.extract_relationships()
     writer = DotWriter(CONFIG)
     writer.write(dd)
コード例 #12
0
def test_known_values2(HANDLER, PROJECT):
    HANDLER.config.classes = ['Specialization']
    HANDLER.config.module_names = False
    cd = ClassDiadefGenerator(Linker(PROJECT), HANDLER).class_diagram(PROJECT, 'data.clientmodule_test.Specialization')
    assert cd.title == 'data.clientmodule_test.Specialization'
    classes = _process_classes(cd.objects)
    assert classes == [(True, 'Ancestor'),
                       (True, 'DoNothing'),
                       (True, 'Specialization')]
コード例 #13
0
 def test_known_values2(self, HANDLER):
     project = get_project('data.clientmodule_test')
     dd = DefaultDiadefGenerator(Linker(project), HANDLER).visit(project)
     assert len(dd) == 1
     keys = [d.TYPE for d in dd]
     assert keys == ['class']
     cd = dd[0]
     assert cd.title == 'classes No Name'
     classes = _process_classes(cd.objects)
     assert classes == [(True, 'Ancestor'), (True, 'Specialization')]
コード例 #14
0
def test_known_values1(HANDLER, PROJECT):
    HANDLER.config.classes = ['Specialization']
    cdg = ClassDiadefGenerator(Linker(PROJECT), HANDLER)
    special = 'data.clientmodule_test.Specialization'
    cd = cdg.class_diagram(PROJECT, special)
    assert cd.title == special
    classes = _process_classes(cd.objects)
    assert classes == [(True, 'data.clientmodule_test.Ancestor'),
                       (True, special),
                       (True, 'data.suppliermodule_test.DoNothing')]
コード例 #15
0
 def setUpClass(cls):
     project = get_project(os.path.join(os.path.dirname(__file__), 'data'))
     linker = Linker(project)
     handler = DiadefsHandler(CONFIG)
     cls.dd = DefaultDiadefGenerator(linker, handler).visit(project)
     for diagram in cls.dd:
         diagram.extract_relationships()
     cls.writer = DotWriter(STDOUT_CONFIG)
     cls.package_diagram = cls.dd[0]
     cls.class_diagram = cls.dd[1]
コード例 #16
0
def test_known_values2(HANDLER):
    project = get_project("data.clientmodule_test")
    dd = DefaultDiadefGenerator(Linker(project), HANDLER).visit(project)
    assert len(dd) == 1
    keys = [d.TYPE for d in dd]
    assert keys == ["class"]
    cd = dd[0]
    assert cd.title == "classes No Name"
    classes = _process_classes(cd.objects)
    assert classes == [(True, "Ancestor"), (True, "Specialization")]
コード例 #17
0
 def test_known_values2(self):
     project = get_project('data.clientmodule_test')
     dd = DefaultDiadefGenerator(Linker(project), HANDLER).visit(project)
     self.assertEqual(len(dd), 1)
     keys = [d.TYPE for d in dd]
     self.assertEqual(keys, ['class'])
     cd = dd[0]
     self.assertEqual(cd.title, 'classes No Name')
     classes = _process_classes(cd.objects)
     self.assertEqual(classes, [(True, 'Ancestor'), (True, 'DoNothing'),
                                (True, 'Specialization')])
コード例 #18
0
 def test_functional_relation_extraction(self):
     """functional test of relations extraction;
     different classes possibly in different modules"""
     # XXX should be catching pyreverse environnement problem but doesn't
     # pyreverse doesn't extracts the relations but this test ok
     project = get_project("data")
     handler = DiadefsHandler(Config())
     diadefs = handler.get_diadefs(project, Linker(project, tag=True))
     cd = diadefs[1]
     relations = _process_relations(cd.relationships)
     assert relations == self._should_rels
コード例 #19
0
def test_known_values4(HANDLER, PROJECT):
    HANDLER.config.classes = ["Specialization"]
    HANDLER.config.module_names = False
    cd = ClassDiadefGenerator(Linker(PROJECT), HANDLER).class_diagram(
        PROJECT, "data.clientmodule_test.Specialization")
    assert cd.title == "data.clientmodule_test.Specialization"
    classes = _process_classes(cd.objects)
    assert classes == [
        (True, "Ancestor"),
        (True, "DoNothing"),
        (True, "Specialization"),
    ]
コード例 #20
0
ファイル: test_diadefs.py プロジェクト: AWhetter/pylint
def test_known_values3(HANDLER: DiadefsHandler, PROJECT: Project) -> None:
    HANDLER.config.classes = ["Specialization"]
    cdg = ClassDiadefGenerator(Linker(PROJECT), HANDLER)
    special = "data.clientmodule_test.Specialization"
    cd = cdg.class_diagram(PROJECT, special)
    assert cd.title == special
    classes = _process_classes(cd.objects)
    assert classes == [
        (True, "data.clientmodule_test.Ancestor"),
        (True, special),
        (True, "data.suppliermodule_test.DoNothing"),
        (True, "data.suppliermodule_test.DoNothing2"),
    ]
コード例 #21
0
ファイル: test_writer.py プロジェクト: AWhetter/pylint
def _setup(project: Project, config: PyreverseConfig,
           writer: DiagramWriter) -> Iterator:
    linker = Linker(project)
    handler = DiadefsHandler(config)
    dd = DefaultDiadefGenerator(linker, handler).visit(project)
    for diagram in dd:
        diagram.extract_relationships()
    writer.write(dd)
    yield
    for fname in (DOT_FILES + COLORIZED_DOT_FILES + VCG_FILES + PUML_FILES +
                  COLORIZED_PUML_FILES + MMD_FILES + HTML_FILES):
        try:
            os.remove(fname)
        except FileNotFoundError:
            continue
def setup():
    project = get_project(os.path.join(os.path.dirname(__file__), "data"))
    linker = Linker(project)
    CONFIG = Config()
    handler = DiadefsHandler(CONFIG)
    dd = DefaultDiadefGenerator(linker, handler).visit(project)
    for diagram in dd:
        diagram.extract_relationships()
    writer = DotWriter(CONFIG)
    writer.write(dd)
    yield
    for fname in DOT_FILES:
        try:
            os.remove(fname)
        except:
            continue
コード例 #23
0
 def run(self, args):
     """checking arguments and run project"""
     if not args:
         print(self.help())
         return 1
     with fix_import_path(args):
         project = project_from_files(
             args,
             project_name=self.config.project,
             black_list=self.config.ignore_list,
         )
     linker = Linker(project, tag=True)
     handler = DiadefsHandler(self.config)
     diadefs = handler.get_diadefs(project, linker)
     writer.DiagramWriter(self.config).write(diadefs)
     return 0
コード例 #24
0
 def test_known_values1(self, HANDLER, PROJECT):
     dd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)
     assert len(dd) == 2
     keys = [d.TYPE for d in dd]
     assert keys == ['package', 'class']
     pd = dd[0]
     assert pd.title == 'packages No Name'
     modules = sorted([(isinstance(m.node, astroid.Module), m.title)
                       for m in pd.objects])
     assert modules == [(True, 'data'), (True, 'data.clientmodule_test'),
                        (True, 'data.suppliermodule_test')]
     cd = dd[1]
     assert cd.title == 'classes No Name'
     classes = _process_classes(cd.objects)
     assert classes == [(True, 'Ancestor'), (True, 'DoNothing'),
                        (True, 'Interface'), (True, 'Specialization')]
コード例 #25
0
 def test_known_values1(self):
     dd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)
     self.assertEqual(len(dd), 2)
     keys = [d.TYPE for d in dd]
     self.assertEqual(keys, ['package', 'class'])
     pd = dd[0]
     self.assertEqual(pd.title, 'packages No Name')
     modules = sorted([(isinstance(m.node, astroid.Module), m.title)
                       for m in pd.objects])
     self.assertEqual(modules, [(True, 'data'),
                                (True, 'data.clientmodule_test'),
                                (True, 'data.suppliermodule_test')])
     cd = dd[1]
     self.assertEqual(cd.title, 'classes No Name')
     classes = _process_classes(cd.objects)
     self.assertEqual(classes, [(True, 'Ancestor'), (True, 'DoNothing'),
                                (True, 'Interface'),
                                (True, 'Specialization')])
コード例 #26
0
def test_known_values1(HANDLER, PROJECT):
    dd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)
    assert len(dd) == 2
    keys = [d.TYPE for d in dd]
    assert keys == ["package", "class"]
    pd = dd[0]
    assert pd.title == "packages No Name"
    modules = sorted([(isinstance(m.node, astroid.Module), m.title)
                      for m in pd.objects])
    assert modules == [
        (True, "data"),
        (True, "data.clientmodule_test"),
        (True, "data.suppliermodule_test"),
    ]
    cd = dd[1]
    assert cd.title == "classes No Name"
    classes = _process_classes(cd.objects)
    assert classes == [
        (True, "Ancestor"),
        (True, "DoNothing"),
        (True, "Interface"),
        (True, "Specialization"),
    ]
コード例 #27
0
 def test_exctract_relations(self, HANDLER, PROJECT):
     """test extract_relations between classes"""
     cd = DefaultDiadefGenerator(Linker(PROJECT), HANDLER).visit(PROJECT)[1]
     cd.extract_relationships()
     relations = _process_relations(cd.relationships)
     assert relations == self._should_rels