Preserve macOS app permissions via dynamic launcher, .env workspace path, and session/audio tools
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Tests for bin/session_tool.py and Hermes session resetting in hermes_llm.py."""
|
||||
|
||||
import json
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
from bin.session_tool import get_active_session_id, reset_session, SESSION_FILE_NAME
|
||||
from hermes_llm import HermesLLM
|
||||
|
||||
|
||||
def test_session_tool_api():
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
workspace = Path(tmpdir)
|
||||
session_file = workspace / SESSION_FILE_NAME
|
||||
|
||||
# Initially no session
|
||||
assert get_active_session_id(workspace) is None
|
||||
|
||||
# Write mock session file
|
||||
session_file.write_text(json.dumps({"session_id": "test_session_123"}) + "\n")
|
||||
assert get_active_session_id(workspace) == "test_session_123"
|
||||
|
||||
# Reset session
|
||||
ok, msg = reset_session(workspace)
|
||||
assert ok
|
||||
assert "reset successfully" in msg.lower() or "no active session" in msg.lower()
|
||||
assert get_active_session_id(workspace) is None
|
||||
assert not session_file.exists()
|
||||
|
||||
# Double reset safely handles non-existent file
|
||||
ok, msg = reset_session(workspace)
|
||||
assert ok
|
||||
print("PASS: test_session_tool_api verified")
|
||||
|
||||
|
||||
def test_hermes_llm_session_sync():
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
workspace = Path(tmpdir)
|
||||
session_file = workspace / SESSION_FILE_NAME
|
||||
|
||||
# Write mock session ID
|
||||
session_file.write_text(json.dumps({"session_id": "test_session_456"}) + "\n")
|
||||
|
||||
llm = HermesLLM(cwd=workspace)
|
||||
assert llm._session_id == "test_session_456"
|
||||
|
||||
# External reset via tool
|
||||
reset_session(workspace)
|
||||
assert get_active_session_id(workspace) is None
|
||||
|
||||
# Sync disk state in HermesLLM
|
||||
llm._sync_disk_session()
|
||||
assert llm._session_id is None
|
||||
|
||||
# Call reset_session directly on instance
|
||||
session_file.write_text(json.dumps({"session_id": "test_session_789"}) + "\n")
|
||||
llm._sync_disk_session()
|
||||
assert llm._session_id == "test_session_789"
|
||||
|
||||
llm.reset_session()
|
||||
assert llm._session_id is None
|
||||
assert not session_file.exists()
|
||||
print("PASS: test_hermes_llm_session_sync verified")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_session_tool_api()
|
||||
test_hermes_llm_session_sync()
|
||||
print("\nAll session tool tests passed successfully!")
|
||||
Reference in New Issue
Block a user