bima-backend / tests /test_sessions.py
kenrockender's picture
Persist sessions, per-user rate-limit, STT retry, config + tests
aefc853
Raw
History Blame Contribute Delete
1.08 kB
"""In-memory session store tests. Firestore is unavailable in the test env, so
the store degrades to memory-only — exactly the local-dev path we want covered.
"""
from app import sessions
def test_create_get_append_end_roundtrip():
sid = sessions.create("cautious_mom", "Halo, ada yang bisa dibantu?")
assert isinstance(sid, str) and sid
s = sessions.get(sid)
assert s is not None
assert s["persona_id"] == "cautious_mom"
assert s["history"][0] == {"role": "assistant", "content": "Halo, ada yang bisa dibantu?"}
sessions.append(sid, "user", "Saya mau tanya produk")
sessions.append(sid, "assistant", "Tentu")
assert len(sessions.history(sid)) == 3
ended = sessions.end(sid)
assert ended is not None
assert sessions.get(sid) is None
def test_get_unknown_session_returns_none():
assert sessions.get("does-not-exist") is None
def test_append_to_missing_session_is_noop():
# Should not raise even though the session was never created.
sessions.append("ghost", "user", "hi")
assert sessions.get("ghost") is None