1
0
This repository has been archived on 2026-03-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Timmy-time-dashboard/tests/scripts/test_multimodal_scripts.py
Alexander Whitestone 76a5548db1 Merge PR #1491
Consolidate multimodal dashboard fixes and verifier syntax repair
2026-04-12 23:12:42 +00:00

57 lines
2.1 KiB
Python

"""Unit tests for multimodal helper scripts."""
from pathlib import Path
import pytest
import scripts.doc_drift_detector as drift
import scripts.visual_log_analyzer as logs
pytestmark = pytest.mark.unit
def test_scan_codebase_finds_python_and_config(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
src = tmp_path / "src"
src.mkdir()
(src / "alpha.py").write_text(
"import json\n\n\ndef do_work():\n return json.dumps({'ok': True})\n",
encoding="utf-8",
)
(tmp_path / "settings.yml").write_text("enabled: true\n", encoding="utf-8")
monkeypatch.chdir(tmp_path)
detector = drift.ArchitectureDriftDetector(str(src))
components = detector.scan_codebase()
alpha = next(c for c in components if c.name == "alpha")
assert alpha.path == "src/alpha.py"
assert alpha.component_type == "module"
assert alpha.lines_of_code >= 2
assert any(c.path.endswith("settings.yml") and c.component_type == "config" for c in components)
def test_detect_drift_matches_normalized_component_names() -> None:
detector = drift.ArchitectureDriftDetector("src")
diagram = [drift.DiagramComponent(name="Alpha Service", component_type="service")]
code = [drift.CodeComponent(name="alpha_service", path="src/alpha_service.py", component_type="module", lines_of_code=75)]
report = detector.detect_drift(diagram, code)
assert report.missing_from_code == []
assert report.missing_from_docs == []
assert report.confidence == 1.0
def test_visual_log_analyzer_builds_prompts() -> None:
analyzer = logs.VisualLogAnalyzer()
analyze = analyzer.analyze_screenshot("/tmp/htop.png", "htop")
assert analyze["screenshot_path"] == "/tmp/htop.png"
assert analyze["monitor_type"] == "htop"
assert "CPU usage above 80%" in analyze["prompt"]
assert analyze["instruction"] == "Use vision_analyze tool with this prompt"
compare = analyzer.compare_screenshots("before.png", "after.png")
assert compare["before"] == "before.png"
assert compare["after"] == "after.png"
assert "Overall health trend" in compare["prompt"] or "Overall health trend".lower() in compare["prompt"].lower()