added mcp_renderer

This commit is contained in:
2026-01-21 16:18:25 +05:30
parent 9a5e356039
commit 427e407d26
17 changed files with 212 additions and 7 deletions

View File

View 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

View 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

View 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}"

View 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()