mirror of
https://github.com/safishamsi/graphify.git
synced 2026-07-12 10:27:11 +00:00
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
"""Regression tests for `graphify path` arrow direction (#849)."""
|
|
from __future__ import annotations
|
|
import json
|
|
import networkx as nx
|
|
from networkx.readwrite import json_graph
|
|
import graphify.__main__ as mainmod
|
|
|
|
|
|
def _write_graph(tmp_path):
|
|
graph_data = {
|
|
"directed": False, "multigraph": False, "graph": {},
|
|
"nodes": [
|
|
{"id": "create_patch", "label": "createPatchHandler()",
|
|
"source_file": "server/create-patch-handler.ts", "community": 0},
|
|
{"id": "validate", "label": "validateSanitySession()",
|
|
"source_file": "server/sanity-validate-session.ts", "community": 0},
|
|
],
|
|
"links": [
|
|
{"source": "create_patch", "target": "validate",
|
|
"relation": "calls", "confidence": "EXTRACTED"},
|
|
],
|
|
}
|
|
p = tmp_path / "graph.json"
|
|
p.write_text(json.dumps(graph_data))
|
|
return p
|
|
|
|
|
|
def _run(monkeypatch, graph_path, src, tgt, capsys):
|
|
monkeypatch.setattr(mainmod, "_check_skill_version", lambda _: None)
|
|
monkeypatch.setattr(mainmod.sys, "argv",
|
|
["graphify", "path", src, tgt, "--graph", str(graph_path)])
|
|
mainmod.main()
|
|
return capsys.readouterr().out
|
|
|
|
|
|
def test_forward_arrow(monkeypatch, tmp_path, capsys):
|
|
p = _write_graph(tmp_path)
|
|
out = _run(monkeypatch, p, "createPatchHandler", "validateSanitySession", capsys)
|
|
assert "Shortest path (1 hops):" in out
|
|
assert "createPatchHandler() --calls [EXTRACTED]--> validateSanitySession()" in out
|
|
|
|
|
|
def test_reverse_arrow(monkeypatch, tmp_path, capsys):
|
|
p = _write_graph(tmp_path)
|
|
out = _run(monkeypatch, p, "validateSanitySession", "createPatchHandler", capsys)
|
|
assert "Shortest path (1 hops):" in out
|
|
assert "validateSanitySession() <--calls [EXTRACTED]-- createPatchHandler()" in out
|
|
assert "validateSanitySession() --calls [EXTRACTED]--> createPatchHandler()" not in out
|