Initial commit: CodeMap v0.1.0 - CLI tool for code analysis and diagram generation
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-01-30 12:19:09 +00:00
parent c0ab3bf79b
commit 8a8fc5da68

View File

@@ -0,0 +1,85 @@
from pathlib import Path
from codemap.core import GraphBuilder, MermaidGenerator
from codemap.parsers import ParsedFile
def test_mermaid_generator_basic():
builder = GraphBuilder()
files = [
ParsedFile(file_path=Path("/app/main.py"), module_name="main", dependencies=[], file_type="python"),
ParsedFile(file_path=Path("/app/utils.py"), module_name="utils", dependencies=[], file_type="python"),
]
builder.build_from_files(files)
graph_data = builder.get_graph_data()
generator = MermaidGenerator(graph_data)
output = generator.generate_flowchart()
assert "graph TD" in output
assert "main" in output
assert "utils" in output
def test_mermaid_generator_with_packages():
builder = GraphBuilder()
files = [
ParsedFile(file_path=Path("/app/src/main.py"), module_name="main", dependencies=[], file_type="python"),
ParsedFile(file_path=Path("/app/src/utils.py"), module_name="utils", dependencies=[], file_type="python"),
]
builder.build_from_files(files)
graph_data = builder.get_graph_data()
generator = MermaidGenerator(graph_data)
output = generator.generate_flowchart(include_packages=True)
assert "subgraph" in output
def test_mermaid_generator_class_diagram():
builder = GraphBuilder()
files = [
ParsedFile(file_path=Path("/app/main.py"), module_name="main", dependencies=[], file_type="python"),
]
builder.build_from_files(files)
graph_data = builder.get_graph_data()
generator = MermaidGenerator(graph_data)
output = generator.generate_class_diagram()
assert "classDiagram" in output
def test_mermaid_generator_pie_chart():
builder = GraphBuilder()
files = [
ParsedFile(file_path=Path("/app/main.py"), module_name="main", dependencies=[], file_type="python"),
ParsedFile(file_path=Path("/app/main.js"), module_name="main", dependencies=[], file_type="javascript"),
ParsedFile(file_path=Path("/app/main.go"), module_name="main", dependencies=[], file_type="go"),
]
builder.build_from_files(files)
graph_data = builder.get_graph_data()
generator = MermaidGenerator(graph_data)
output = generator.generate_pie_chart()
assert "pie" in output
assert "python" in output
assert "javascript" in output
assert "go" in output
def test_safe_id():
builder = GraphBuilder()
generator = MermaidGenerator(builder.get_graph_data())
safe = generator._safe_id("/app/my-project/file.name.js")
assert " " not in safe
assert safe[0].isalpha() or safe[0] == "_"