From a887df232ad6e6338da836d195b9d9cc4de3bf37 Mon Sep 17 00:00:00 2001 From: Joshua King Date: Mon, 14 Sep 2026 08:26:58 -0400 Subject: [PATCH] test: derive occurred-at query date from the event stamp; capture generated_at at creation Both comparisons now use the recorded value, never a fresh clock read, so a midnight boundary mid-test cannot flake them. --- tests/test_dao_instances.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/test_dao_instances.py b/tests/test_dao_instances.py index 423e5c1..f0dad52 100644 --- a/tests/test_dao_instances.py +++ b/tests/test_dao_instances.py @@ -346,8 +346,9 @@ def test_upsert_refuses_immutable_completed_instance(tmp_path) -> None: """An instance with a completion event can never be regenerated.""" async def _body(database, children, rules, definitions, instances, events, child, definition): + generated_at = _now_stamp() instance = await instances.upsert( - definition.id, child.id, D1, _now_stamp(), due_time="08:00" + definition.id, child.id, D1, generated_at, due_time="08:00" ) await events.append( instance.id, child.id, "completed", "user", _now_stamp(), True, @@ -361,7 +362,7 @@ def test_upsert_refuses_immutable_completed_instance(tmp_path) -> None: assert fetched.due_time == "08:00", ( "failed regeneration must not touch the completed instance" ) - assert fetched.generated_at == _now_stamp() + assert fetched.generated_at == generated_at return fetched _with_db(tmp_path, "upsert-immutable.db")(_body) @@ -860,9 +861,10 @@ def test_list_events_occurred_at_scope_variant(tmp_path) -> None: child.id, D20, D20 ) assert [e.id for e in by_due] == [event.id] - # Derive the query date from the stamp itself so the test is - # midnight-safe: the stamp's date IS the day to query. - stamp_date = _now_stamp()[:10] + # Derive the query date from the EVENT's stamp so the test is + # midnight-safe: the event's own date IS the day to query, + # whatever the wall clock says now. + stamp_date = event.occurred_at[:10] by_occurrence = await events.list_by_child_and_date_range( child.id, stamp_date, stamp_date, due_date_scope=False,