From 8f21dc5f9c7fef43035488117b0d84654f3052cd Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Wed, 3 Jun 2026 22:42:05 -0700 Subject: [PATCH] =?UTF-8?q?feat(cache):=20mirror=20=C2=A722.4c=20review=20?= =?UTF-8?q?fields=20into=20cached=5Frfcs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/cache.py | 12 ++++++++++-- backend/tests/test_cache_review_fields.py | 24 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 backend/tests/test_cache_review_fields.py diff --git a/backend/app/cache.py b/backend/app/cache.py index 3771671..747de7e 100644 --- a/backend/app/cache.py +++ b/backend/app/cache.py @@ -87,8 +87,10 @@ def _upsert_cached_rfc(entry: entry_mod.Entry, body_sha: str) -> None: INSERT INTO cached_rfcs (slug, title, state, rfc_id, repo, proposed_by, proposed_at, graduated_at, graduated_by, owners_json, arbiters_json, tags_json, - models_json, funder_login, body, body_sha, last_entry_commit_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now')) + models_json, funder_login, body, body_sha, + unreviewed, reviewed_at, reviewed_by, + last_entry_commit_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now')) ON CONFLICT(slug) DO UPDATE SET title = excluded.title, state = excluded.state, @@ -105,6 +107,9 @@ def _upsert_cached_rfc(entry: entry_mod.Entry, body_sha: str) -> None: funder_login = excluded.funder_login, body = excluded.body, body_sha = excluded.body_sha, + unreviewed = excluded.unreviewed, + reviewed_at = excluded.reviewed_at, + reviewed_by = excluded.reviewed_by, last_entry_commit_at = datetime('now'), updated_at = datetime('now') """, @@ -125,6 +130,9 @@ def _upsert_cached_rfc(entry: entry_mod.Entry, body_sha: str) -> None: funder_login, entry.body, body_sha, + 1 if entry.unreviewed else 0, + entry.reviewed_at, + entry.reviewed_by, ), ) diff --git a/backend/tests/test_cache_review_fields.py b/backend/tests/test_cache_review_fields.py new file mode 100644 index 0000000..c0a9627 --- /dev/null +++ b/backend/tests/test_cache_review_fields.py @@ -0,0 +1,24 @@ +"""§22.4c — _upsert_cached_rfc mirrors the review fields into cached_rfcs.""" +from __future__ import annotations + +from fastapi.testclient import TestClient + +from test_propose_vertical import app_with_fake_gitea, tmp_env # noqa: F401 + + +def test_upsert_writes_review_fields(app_with_fake_gitea): + from app import cache, db, entry as entry_mod + + app, _ = app_with_fake_gitea + with TestClient(app): + e = entry_mod.Entry( + slug="rev", title="Rev", state="active", + unreviewed=True, reviewed_at="2026-06-03", reviewed_by="ben", + ) + cache._upsert_cached_rfc(e, body_sha="sha-rev") + row = db.conn().execute( + "SELECT unreviewed, reviewed_at, reviewed_by FROM cached_rfcs WHERE slug = 'rev'" + ).fetchone() + assert row["unreviewed"] == 1 + assert row["reviewed_at"] == "2026-06-03" + assert row["reviewed_by"] == "ben"