Files
odysseus/tests/test_session_header_persistence.py
T

41 lines
1.3 KiB
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import core.database as database
import core.session_manager as session_manager
from core.database import Session as DbSession
from core.session_manager import SessionManager
def test_create_session_persists_endpoint_headers(tmp_path, monkeypatch):
engine = create_engine(f"sqlite:///{tmp_path / 'sessions.db'}")
database.Base.metadata.create_all(engine)
session_local = sessionmaker(bind=engine, autoflush=False, autocommit=False)
monkeypatch.setattr(session_manager, "SessionLocal", session_local)
manager = SessionManager.__new__(SessionManager)
manager.sessions = {}
manager.upload_handler = None
headers = {
"Authorization": "Bearer test-key",
"HTTP-Referer": "http://localhost:7011",
}
manager.create_session(
session_id="child",
name="Child",
endpoint_url="https://openrouter.ai/api/v1/chat/completions",
model="moonshotai/kimi-k3",
owner="alice",
headers=headers,
)
db = session_local()
try:
row = db.query(DbSession).filter(DbSession.id == "child").one()
restored = manager._db_to_session_meta(row)
finally:
db.close()
assert restored is not None
assert restored.headers == headers