test(tui): launch-handle pin test opens a real registry SessionDB

The salvaged #102534 test patched hermes_state.get_shared_session_db, a seam
main dropped (server._get_db now calls hermes_state_registry.acquire), so the
fixture errored at setup and the file reported 0 passed. Assert on the real
handle's db_path and on the foreign home staying untouched instead of on a
fake factory; red with the pin reverted, green with it.
This commit is contained in:
teknium1
2026-09-11 02:07:52 -07:00
committed by Teknium
parent 342705135a
commit 5a720bbb1b

View File

@@ -9,11 +9,9 @@ backend permanently serves the wrong profile's state.db.
from __future__ import annotations
from pathlib import Path
from types import SimpleNamespace
import pytest
import hermes_state_registry as registry
from hermes_constants import reset_hermes_home_override, set_hermes_home_override
from tui_gateway import server
@@ -29,24 +27,20 @@ def launch_db_env(monkeypatch, tmp_path):
monkeypatch.setattr(server, "_hermes_home", str(launch_home))
monkeypatch.setattr(server, "_db", None)
monkeypatch.setattr(server, "_db_error", None)
captured: list[Path | None] = []
def _factory(db_path=None, **_kwargs):
captured.append(Path(db_path) if db_path is not None else None)
return SimpleNamespace(db_path=db_path)
monkeypatch.setattr("hermes_state.get_shared_session_db", _factory)
return launch_home, foreign_home, captured
try:
yield launch_home, foreign_home
finally:
registry.close_all()
def test_get_db_first_touch_under_foreign_override_uses_launch_path(launch_db_env):
launch_home, foreign_home, captured = launch_db_env
launch_home, foreign_home = launch_db_env
token = set_hermes_home_override(str(foreign_home))
try:
db = server._get_db()
assert db is not None
assert captured == [launch_home / "state.db"]
assert db.db_path.resolve() == (launch_home / "state.db").resolve()
assert not (foreign_home / "state.db").exists()
assert server._get_db() is db
finally:
reset_hermes_home_override(token)