mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-15 04:32:23 +02:00
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
import core.database as cdb
|
|
import core.session_manager as smod
|
|
from core.database import Session as DbSession
|
|
from core.session_manager import SessionManager
|
|
|
|
|
|
def _session_factory(tmp_path):
|
|
engine = create_engine(f"sqlite:///{tmp_path / 'sessions.db'}")
|
|
cdb.Base.metadata.create_all(engine)
|
|
return sessionmaker(bind=engine, autoflush=False, autocommit=False)
|
|
|
|
|
|
def test_session_manager_create_and_reload_preserves_cwd(tmp_path, monkeypatch):
|
|
session_local = _session_factory(tmp_path)
|
|
monkeypatch.setattr(smod, "SessionLocal", session_local)
|
|
|
|
manager = SessionManager.__new__(SessionManager)
|
|
manager.sessions = {}
|
|
manager.upload_handler = None
|
|
|
|
created = manager.create_session(
|
|
"sid",
|
|
"Workspace",
|
|
"http://localhost/v1/chat/completions",
|
|
"gpt-4",
|
|
owner="alice",
|
|
cwd="/home/pewds/odysseus-tui",
|
|
)
|
|
|
|
assert created.cwd == "/home/pewds/odysseus-tui"
|
|
|
|
db = session_local()
|
|
try:
|
|
row = db.query(DbSession).filter(DbSession.id == "sid").first()
|
|
assert row.cwd == "/home/pewds/odysseus-tui"
|
|
hydrated = manager._db_to_session_meta(row)
|
|
finally:
|
|
db.close()
|
|
|
|
assert hydrated.cwd == "/home/pewds/odysseus-tui"
|