Files
hermes-agent/tests/hermes_cli/test_foreign_session_browser.py
T
Adolanium dfd0660fd7 fix(desktop): skip inaccessible logs during foreign session discovery
One unreadable or rotated log must not hide the rest of the list; discovery
tolerates OSError from resolve()/stat() per entry and reuses the stat result.
2026-09-06 09:09:41 -07:00

33 lines
1.2 KiB
Python

"""Discovery keeps readable sessions available when a neighboring log is inaccessible."""
import json
from pathlib import Path
import pytest
from hermes_cli.foreign_session_browser import list_foreign_sessions
@pytest.mark.parametrize("operation", ["resolve", "stat"])
def test_discovery_skips_inaccessible_log(tmp_path, monkeypatch, operation):
monkeypatch.setattr(Path, "home", lambda: tmp_path)
monkeypatch.setenv("HERMES_HOME", str(tmp_path / ".hermes"))
folder = tmp_path / ".codex" / "sessions"
folder.mkdir(parents=True)
for name in ("readable", "inaccessible"):
(folder / f"rollout-{name}.jsonl").write_text(json.dumps({
"type": "response_item", "payload": {"type": "message", "role": "user",
"content": [{"type": "input_text", "text": name}]},
}), encoding="utf-8")
original = getattr(Path, operation)
def access(path, *args, **kwargs):
if path.name == "rollout-inaccessible.jsonl":
raise PermissionError("Log access denied")
return original(path, *args, **kwargs)
monkeypatch.setattr(Path, operation, access)
page = list_foreign_sessions("codex")
assert [session["title"] for session in page["sessions"]] == ["readable"]