diff --git a/metagpt/actions/rebuild_class_view.py b/metagpt/actions/rebuild_class_view.py index 2e27d37fc..df3a1d7fb 100644 --- a/metagpt/actions/rebuild_class_view.py +++ b/metagpt/actions/rebuild_class_view.py @@ -72,7 +72,7 @@ class RebuildClassView(Action): if content: logger.debug(content) await writer.write(content) - relationship_distinct += distinct + relationship_distinct.update(distinct) logger.info(f"classes: {len(class_distinct)}, relationship: {len(relationship_distinct)}") async def _create_mermaid_class(self, ns_class_name) -> str: diff --git a/tests/metagpt/actions/test_rebuild_sequence_view.py b/tests/metagpt/actions/test_rebuild_sequence_view.py index 49d444f2f..b64dfff90 100644 --- a/tests/metagpt/actions/test_rebuild_sequence_view.py +++ b/tests/metagpt/actions/test_rebuild_sequence_view.py @@ -14,16 +14,28 @@ from metagpt.const import GRAPH_REPO_FILE_REPO from metagpt.llm import LLM from metagpt.utils.common import aread from metagpt.utils.git_repository import ChangeType +from metagpt.utils.graph_repository import SPO @pytest.mark.asyncio -async def test_rebuild(context): +async def test_rebuild(context, mocker): # Mock data = await aread(filename=Path(__file__).parent / "../../data/graph_db/networkx.json") graph_db_filename = Path(context.repo.workdir.name).with_suffix(".json") await context.repo.docs.graph_repo.save(filename=str(graph_db_filename), content=data) context.git_repo.add_change({f"{GRAPH_REPO_FILE_REPO}/{graph_db_filename}": ChangeType.UNTRACTED}) context.git_repo.commit("commit1") + # mock_spo = SPO( + # subject="metagpt/startup.py:__name__:__main__", + # predicate="has_page_info", + # object_='{"lineno":78,"end_lineno":79,"type_name":"ast.If","tokens":["__name__","__main__"],"properties":{}}', + # ) + mock_spo = SPO( + subject="metagpt/tools/search_engine_serpapi.py:__name__:__main__", + predicate="has_page_info", + object_='{"lineno":113,"end_lineno":116,"type_name":"ast.If","tokens":["__name__","__main__"],"properties":{}}', + ) + mocker.patch.object(RebuildSequenceView, "_search_main_entry", return_value=[mock_spo]) action = RebuildSequenceView( name="RedBean",