mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-14 15:25:17 +02:00
feat: Implementation of ProjectRepo
This commit is contained in:
parent
3677d44b47
commit
102ae2ca67
4 changed files with 152 additions and 73 deletions
58
tests/metagpt/utils/test_project_repo.py
Normal file
58
tests/metagpt/utils/test_project_repo.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@Time : 2024/1/8
|
||||
@Author : mashenquan
|
||||
"""
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
from metagpt.const import (
|
||||
BUGFIX_FILENAME,
|
||||
PACKAGE_REQUIREMENTS_FILENAME,
|
||||
PRDS_FILE_REPO,
|
||||
REQUIREMENT_FILENAME,
|
||||
)
|
||||
from metagpt.utils.project_repo import ProjectRepo
|
||||
|
||||
|
||||
async def test_project_repo():
|
||||
root = Path(__file__).parent / f"../../../workspace/unittest/{uuid.uuid4().hex}"
|
||||
root = root.resolve()
|
||||
|
||||
pr = ProjectRepo(root=str(root))
|
||||
assert pr.git_repo.workdir == root
|
||||
|
||||
await pr.save(filename=REQUIREMENT_FILENAME, content=REQUIREMENT_FILENAME)
|
||||
doc = await pr.get(filename=REQUIREMENT_FILENAME)
|
||||
assert doc.content == REQUIREMENT_FILENAME
|
||||
await pr.save(filename=BUGFIX_FILENAME, content=BUGFIX_FILENAME)
|
||||
doc = await pr.get(filename=BUGFIX_FILENAME)
|
||||
assert doc.content == BUGFIX_FILENAME
|
||||
await pr.save(filename=PACKAGE_REQUIREMENTS_FILENAME, content=PACKAGE_REQUIREMENTS_FILENAME)
|
||||
doc = await pr.get(filename=PACKAGE_REQUIREMENTS_FILENAME)
|
||||
assert doc.content == PACKAGE_REQUIREMENTS_FILENAME
|
||||
await pr.docs.prd.save(filename="1.prd", content="1.prd", dependencies=[REQUIREMENT_FILENAME])
|
||||
doc = await pr.docs.prd.get(filename="1.prd")
|
||||
assert doc.content == "1.prd"
|
||||
await pr.resources.prd.save(
|
||||
filename="1.prd",
|
||||
content="1.prd",
|
||||
dependencies=[REQUIREMENT_FILENAME, f"{PRDS_FILE_REPO}/1.prd"],
|
||||
)
|
||||
doc = await pr.resources.prd.get(filename="1.prd")
|
||||
assert doc.content == "1.prd"
|
||||
dependencies = await pr.resources.prd.get_dependency(filename="1.prd")
|
||||
assert len(dependencies) == 2
|
||||
|
||||
assert pr.changed_files
|
||||
assert pr.docs.prd.changed_files
|
||||
assert not pr.tests.changed_files
|
||||
|
||||
pr.git_repo.delete_repository()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
Loading…
Add table
Add a link
Reference in a new issue