Update main. #6
+6
-1
@@ -1298,12 +1298,17 @@ def hud(session_id: int | None = None) -> dict | None:
|
|||||||
for h in list_hands(sid)
|
for h in list_hands(sid)
|
||||||
]
|
]
|
||||||
|
|
||||||
# Notes she jotted during this session: journal/note entries since it started.
|
# Notes she jotted *during* this session: journal/note entries inside its
|
||||||
|
# [started_at, ended_at] window. A live session has no end yet, so it stays
|
||||||
|
# open-ended; without the upper bound a closed session would keep absorbing
|
||||||
|
# every note she writes long after it's over.
|
||||||
started = s.get("started_at") or ""
|
started = s.get("started_at") or ""
|
||||||
|
ended = s.get("ended_at") or None
|
||||||
notes = [
|
notes = [
|
||||||
{"created_at": j["created_at"], "kind": j["kind"], "content": j["content"]}
|
{"created_at": j["created_at"], "kind": j["kind"], "content": j["content"]}
|
||||||
for j in memory.list_journal(kinds=("note", "journal"))
|
for j in memory.list_journal(kinds=("note", "journal"))
|
||||||
if (j["created_at"] or "") >= started
|
if (j["created_at"] or "") >= started
|
||||||
|
and (ended is None or (j["created_at"] or "") <= ended)
|
||||||
][:20]
|
][:20]
|
||||||
|
|
||||||
stats = session_stats(sid)
|
stats = session_stats(sid)
|
||||||
|
|||||||
@@ -18,6 +18,27 @@ def lyra(tmp_path, monkeypatch):
|
|||||||
return poker
|
return poker
|
||||||
|
|
||||||
|
|
||||||
|
def test_hud_notes_scoped_to_session_window(lyra):
|
||||||
|
poker = lyra
|
||||||
|
from lyra import memory
|
||||||
|
sid = poker.start_session(venue="Meadows", stakes="1/3", buy_in=300)
|
||||||
|
s = poker.get_session(sid)
|
||||||
|
started = s["started_at"]
|
||||||
|
# A note written mid-session (>= started, before it ends) belongs to it.
|
||||||
|
conn = memory._connection()
|
||||||
|
with conn:
|
||||||
|
conn.execute("INSERT INTO journal (created_at, kind, content) VALUES (?,?,?)",
|
||||||
|
(started, "note", "villain 3 overfolds turn"))
|
||||||
|
poker.end_session(cash_out=540, session_id=sid)
|
||||||
|
# A note written well after the session closed must NOT show up on it.
|
||||||
|
with conn:
|
||||||
|
conn.execute("INSERT INTO journal (created_at, kind, content) VALUES (?,?,?)",
|
||||||
|
("2999-01-01T00:00:00+00:00", "note", "thought from the far future"))
|
||||||
|
contents = [n["content"] for n in poker.hud(sid)["notes"]]
|
||||||
|
assert "villain 3 overfolds turn" in contents # inside the window
|
||||||
|
assert "thought from the far future" not in contents # after ended_at
|
||||||
|
|
||||||
|
|
||||||
def test_session_lifecycle_and_net(lyra):
|
def test_session_lifecycle_and_net(lyra):
|
||||||
poker = lyra
|
poker = lyra
|
||||||
sid = poker.start_session(venue="Meadows", stakes="1/3", buy_in=400)
|
sid = poker.start_session(venue="Meadows", stakes="1/3", buy_in=400)
|
||||||
|
|||||||
Reference in New Issue
Block a user