88"""
99import pytest
1010
11- from metagpt .actions import UserRequirement
11+ from metagpt .actions import UserRequirement , WritePRD
1212from metagpt .config import CONFIG
1313from metagpt .const import DOCS_FILE_REPO , PRDS_FILE_REPO , REQUIREMENT_FILENAME
1414from metagpt .logs import logger
1515from metagpt .roles .product_manager import ProductManager
16+ from metagpt .roles .role import RoleReactMode
1617from metagpt .schema import Message
18+ from metagpt .utils .common import any_to_str
1719from metagpt .utils .file_repository import FileRepository
1820
1921
@@ -22,11 +24,17 @@ async def test_write_prd(new_filename):
2224 product_manager = ProductManager ()
2325 requirements = "开发一个基于大语言模型与私有知识库的搜索引擎,希望可以基于大语言模型进行搜索总结"
2426 await FileRepository .save_file (filename = REQUIREMENT_FILENAME , content = requirements , relative_path = DOCS_FILE_REPO )
27+ product_manager .rc .react_mode = RoleReactMode .BY_ORDER
2528 prd = await product_manager .run (Message (content = requirements , cause_by = UserRequirement ))
29+ assert prd .cause_by == any_to_str (WritePRD )
2630 logger .info (requirements )
2731 logger .info (prd )
2832
2933 # Assert the prd is not None or empty
3034 assert prd is not None
3135 assert prd .content != ""
3236 assert CONFIG .git_repo .new_file_repository (relative_path = PRDS_FILE_REPO ).changed_files
37+
38+
39+ if __name__ == "__main__" :
40+ pytest .main ([__file__ , "-s" ])
0 commit comments