mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-24 16:54:43 +00:00
* ci: surface E2E screenshots in review comment * ci: mark completed review commits in past tense * ci: surface approved sensitive-file reviews * ci: link sensitive files to reviewed changes * ci: stage desktop E2E visual evidence Track screenshots newly introduced against main and package visual diffs for a trusted publisher. * fix(ci): pass E2E evidence output paths Supply the manifest and staging-directory arguments required by the screenshot status helper. * fix(ci): download the OSV SARIF artifact Match the artifact name and result filename emitted by the pinned upstream reusable workflow.
57 lines
No EOL
2.1 KiB
Python
57 lines
No EOL
2.1 KiB
Python
"""Tests for scripts/ci/e2e_screenshot_status.py."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
_PATH = Path(__file__).resolve().parents[2] / "scripts" / "ci" / "e2e_screenshot_status.py"
|
|
_spec = importlib.util.spec_from_file_location("e2e_screenshot_status", _PATH)
|
|
if _spec is None or _spec.loader is None:
|
|
raise ImportError("Failed to load e2e_screenshot_status.py")
|
|
_mod = importlib.util.module_from_spec(_spec)
|
|
_spec.loader.exec_module(_mod)
|
|
|
|
|
|
def test_status_selects_only_new_explicit_screenshots_and_all_diffs(tmp_path):
|
|
for name in (
|
|
"explicit-proof.png",
|
|
"test-finished-1.png",
|
|
"visual-actual.png",
|
|
"visual-expected.png",
|
|
"visual-diff.png",
|
|
):
|
|
(tmp_path / name).write_bytes(b"png")
|
|
|
|
base_manifest = tmp_path / "main-manifest.json"
|
|
base_manifest.write_text('{"screenshot_names":["already-on-main.png"]}', encoding="utf-8")
|
|
(tmp_path / "already-on-main.png").write_bytes(b"png")
|
|
|
|
selection = _mod.select_evidence(tmp_path, base_manifest)
|
|
status = _mod.build_status(selection, "https://github.test/artifacts/1")
|
|
|
|
result = status[0]["results"][0]
|
|
assert result["kind"] == "info"
|
|
assert result["summary"] == "1 new screenshot vs main; 1 visual diff."
|
|
assert _mod.EVIDENCE_START in result["detail"]
|
|
assert "already-on-main.png" not in result["detail"]
|
|
assert result["link"] == "https://github.test/artifacts/1"
|
|
|
|
|
|
def test_cli_output_ends_with_newline_for_github_output_delimiter(tmp_path, monkeypatch):
|
|
output = tmp_path / "review-status.json"
|
|
manifest = tmp_path / "main-manifest.json"
|
|
evidence_dir = tmp_path / "evidence"
|
|
monkeypatch.setattr(sys, "argv", [
|
|
"e2e_screenshot_status.py",
|
|
"--results-dir", str(tmp_path),
|
|
"--manifest-output", str(manifest),
|
|
"--evidence-dir", str(evidence_dir),
|
|
"--output", str(output),
|
|
])
|
|
|
|
assert _mod.main() == 0
|
|
assert output.read_text(encoding="utf-8") == "[]\n"
|
|
assert manifest.read_text(encoding="utf-8") == '{"screenshot_names": [], "version": 1}\n'
|
|
assert evidence_dir.joinpath("e2e-evidence.json").is_file() |