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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user