Files
hkuds--openharness/tests/test_ohmo/test_ohmo_session_storage.py
wehub-resource-sync 0418dc5cf9
CI / Python tests (3.10) (push) Has been cancelled
CI / Python tests (3.11) (push) Has been cancelled
CI / Python quality (push) Has been cancelled
CI / Frontend typecheck (push) Has been cancelled
Autopilot Pages / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:45:00 +08:00

90 lines
3.1 KiB
Python

import json
from pathlib import Path
from openharness.api.usage import UsageSnapshot
from openharness.engine.messages import ConversationMessage
from ohmo.session_storage import OhmoSessionBackend, get_session_dir
from ohmo.workspace import initialize_workspace
def test_ohmo_session_backend_uses_workspace_sessions(tmp_path: Path):
workspace = tmp_path / ".ohmo-home"
initialize_workspace(workspace)
backend = OhmoSessionBackend(workspace)
message = ConversationMessage.from_user_text("hello ohmo")
backend.save_snapshot(
cwd=tmp_path,
model="gpt-5.4",
system_prompt="system",
messages=[message],
usage=UsageSnapshot(),
session_id="abc123",
)
session_dir = get_session_dir(workspace)
assert session_dir == workspace / "sessions"
assert (session_dir / "latest.json").exists()
assert backend.load_by_id(tmp_path, "abc123") is not None
def test_ohmo_session_backend_loads_latest_for_session_key(tmp_path: Path):
workspace = tmp_path / ".ohmo-home"
initialize_workspace(workspace)
backend = OhmoSessionBackend(workspace)
message = ConversationMessage.from_user_text("hello thread")
backend.save_snapshot(
cwd=tmp_path,
model="gpt-5.4",
system_prompt="system",
messages=[message],
usage=UsageSnapshot(),
session_id="abc123",
session_key="feishu:chat-1",
tool_metadata={
"task_focus_state": {"goal": "Continue the same Feishu task"},
"recent_verified_work": ["Verified the compact attachment order"],
},
)
loaded = backend.load_latest_for_session_key("feishu:chat-1")
assert loaded is not None
assert loaded["session_id"] == "abc123"
assert loaded["session_key"] == "feishu:chat-1"
assert loaded["tool_metadata"]["task_focus_state"]["goal"] == "Continue the same Feishu task"
def test_ohmo_session_backend_sanitizes_legacy_empty_assistant_messages(tmp_path: Path):
workspace = tmp_path / ".ohmo-home"
initialize_workspace(workspace)
backend = OhmoSessionBackend(workspace)
session_dir = get_session_dir(workspace)
(session_dir / "latest.json").write_text(
json.dumps(
{
"app": "ohmo",
"session_id": "abc123",
"session_key": "feishu:chat-1",
"cwd": str(tmp_path),
"model": "gpt-5.4",
"system_prompt": "system",
"messages": [
{"role": "user", "content": [{"type": "text", "text": "hello"}]},
{"role": "assistant", "content": None},
{"role": "assistant", "content": []},
],
"usage": {"input_tokens": 0, "output_tokens": 0},
"tool_metadata": {},
"created_at": 1.0,
"summary": "hello",
"message_count": 3,
}
),
encoding="utf-8",
)
loaded = backend.load_latest(tmp_path)
assert loaded is not None
assert loaded["message_count"] == 1
assert loaded["messages"][0]["role"] == "user"