added mcp_renderer
This commit is contained in:
0
tests/renderers/mcp/__init__.py
Normal file
0
tests/renderers/mcp/__init__.py
Normal file
18
tests/renderers/mcp/test_mcp_content.py
Normal file
18
tests/renderers/mcp/test_mcp_content.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from pathlib import Path
|
||||
|
||||
from docforge import MCPRenderer
|
||||
from docforge.models import Project, Module
|
||||
|
||||
|
||||
def test_mcp_file_content(tmp_path: Path):
|
||||
project = Project("testpkg")
|
||||
project.add_module(Module("testpkg.mod"))
|
||||
|
||||
out_dir = tmp_path / "mcp"
|
||||
renderer = MCPRenderer()
|
||||
|
||||
renderer.generate_sources(project, out_dir)
|
||||
|
||||
content = (out_dir / "testpkg" / "mod.md").read_text()
|
||||
|
||||
assert "# Module `testpkg.mod`" in content
|
||||
20
tests/renderers/mcp/test_mcp_idempotency.py
Normal file
20
tests/renderers/mcp/test_mcp_idempotency.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from pathlib import Path
|
||||
|
||||
from docforge import MCPRenderer
|
||||
from docforge.models import Project, Module
|
||||
|
||||
|
||||
def test_mcp_idempotent(tmp_path: Path):
|
||||
project = Project("testpkg")
|
||||
project.add_module(Module("testpkg.mod"))
|
||||
|
||||
out_dir = tmp_path / "mcp"
|
||||
renderer = MCPRenderer()
|
||||
|
||||
renderer.generate_sources(project, out_dir)
|
||||
first = (out_dir / "testpkg" / "mod.md").read_text()
|
||||
|
||||
renderer.generate_sources(project, out_dir)
|
||||
second = (out_dir / "testpkg" / "mod.md").read_text()
|
||||
|
||||
assert first == second
|
||||
29
tests/renderers/mcp/test_mcp_module_coverage.py
Normal file
29
tests/renderers/mcp/test_mcp_module_coverage.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from pathlib import Path
|
||||
|
||||
from docforge.loaders import GriffeLoader, discover_module_paths
|
||||
from docforge import MCPRenderer
|
||||
|
||||
|
||||
def test_mcp_emits_all_modules(tmp_path: Path) -> None:
|
||||
loader = GriffeLoader()
|
||||
discovered_paths = discover_module_paths(
|
||||
"docforge",
|
||||
Path(r"C:\Users\vishe\WorkSpace\code\aetos\doc-forge"),
|
||||
)
|
||||
project = loader.load_project(discovered_paths)
|
||||
|
||||
renderer = MCPRenderer()
|
||||
renderer.generate_sources(project, tmp_path)
|
||||
|
||||
emitted = {
|
||||
p.relative_to(tmp_path).as_posix()
|
||||
for p in tmp_path.rglob("*.md")
|
||||
}
|
||||
|
||||
expected = {
|
||||
m.path.replace(".", "/") + ".md"
|
||||
for m in project.get_all_modules()
|
||||
}
|
||||
|
||||
missing = expected - emitted
|
||||
assert not missing, f"Missing MCP resources for modules: {missing}"
|
||||
18
tests/renderers/mcp/test_mcp_structure.py
Normal file
18
tests/renderers/mcp/test_mcp_structure.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from pathlib import Path
|
||||
|
||||
from docforge import MCPRenderer
|
||||
from docforge.models import Project, Module
|
||||
|
||||
|
||||
def test_mcp_directory_structure(tmp_path: Path):
|
||||
project = Project("testpkg")
|
||||
project.add_module(Module("testpkg"))
|
||||
project.add_module(Module("testpkg.sub"))
|
||||
|
||||
out_dir = tmp_path / "mcp"
|
||||
renderer = MCPRenderer()
|
||||
|
||||
renderer.generate_sources(project, out_dir)
|
||||
|
||||
assert (out_dir / "testpkg.md").exists()
|
||||
assert (out_dir / "testpkg" / "sub.md").exists()
|
||||
Reference in New Issue
Block a user