Initial commit: CodeMap v0.1.0 - CLI tool for code analysis and diagram generation
This commit is contained in:
85
tests/test_mermaid_generator.py
Normal file
85
tests/test_mermaid_generator.py
Normal 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] == "_"
|
||||
Reference in New Issue
Block a user