refactor(review): sibling-consistent naming + module import; assert mark-reviewed git round-trip
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+4
-6
@@ -27,7 +27,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from . import db, notify
|
from . import db, entry as entry_mod, notify
|
||||||
from .gitea import Gitea, GiteaError
|
from .gitea import Gitea, GiteaError
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@@ -1085,8 +1085,6 @@ class Bot:
|
|||||||
frontmatter on main. Stamps the commit with the §6.5 On-behalf-of
|
frontmatter on main. Stamps the commit with the §6.5 On-behalf-of
|
||||||
trailer and writes an actions-log row, mirroring the graduation
|
trailer and writes an actions-log row, mirroring the graduation
|
||||||
stamp's bot-write shape."""
|
stamp's bot-write shape."""
|
||||||
from . import entry as entry_mod
|
|
||||||
|
|
||||||
path = f"rfcs/{slug}.md"
|
path = f"rfcs/{slug}.md"
|
||||||
result = await self._gitea.read_file(org, meta_repo, path, ref="main")
|
result = await self._gitea.read_file(org, meta_repo, path, ref="main")
|
||||||
if result is None:
|
if result is None:
|
||||||
@@ -1097,7 +1095,7 @@ class Bot:
|
|||||||
e.reviewed_at = reviewed_at
|
e.reviewed_at = reviewed_at
|
||||||
e.reviewed_by = reviewed_by
|
e.reviewed_by = reviewed_by
|
||||||
commit_message = _stamp_single(f"Mark {slug} reviewed", actor)
|
commit_message = _stamp_single(f"Mark {slug} reviewed", actor)
|
||||||
result2 = await self._gitea.update_file(
|
result = await self._gitea.update_file(
|
||||||
org, meta_repo, path,
|
org, meta_repo, path,
|
||||||
content=entry_mod.serialize(e),
|
content=entry_mod.serialize(e),
|
||||||
sha=sha,
|
sha=sha,
|
||||||
@@ -1107,8 +1105,8 @@ class Bot:
|
|||||||
author_email=actor.email or f"{actor.gitea_login}@users.noreply",
|
author_email=actor.email or f"{actor.gitea_login}@users.noreply",
|
||||||
)
|
)
|
||||||
commit_sha = (
|
commit_sha = (
|
||||||
result2.get("commit", {}).get("sha")
|
result.get("commit", {}).get("sha")
|
||||||
or result2.get("content", {}).get("sha")
|
or result.get("content", {}).get("sha")
|
||||||
or ""
|
or ""
|
||||||
)
|
)
|
||||||
_log(
|
_log(
|
||||||
|
|||||||
@@ -42,10 +42,17 @@ def test_mark_reviewed_clears_flag(app_with_fake_gitea):
|
|||||||
r = client.post("/api/projects/default/rfcs/feat/mark-reviewed")
|
r = client.post("/api/projects/default/rfcs/feat/mark-reviewed")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
row = db.conn().execute(
|
row = db.conn().execute(
|
||||||
"SELECT unreviewed, reviewed_by FROM cached_rfcs WHERE slug='feat'"
|
"SELECT unreviewed, reviewed_at, reviewed_by FROM cached_rfcs WHERE slug='feat'"
|
||||||
).fetchone()
|
).fetchone()
|
||||||
assert row["unreviewed"] == 0
|
assert row["unreviewed"] == 0
|
||||||
assert row["reviewed_by"] == "ben"
|
assert row["reviewed_by"] == "ben"
|
||||||
|
assert row["reviewed_at"] # provenance stamped
|
||||||
|
# git-side: the entry file on main was rewritten with the cleared flag.
|
||||||
|
from app import entry as entry_mod
|
||||||
|
written = fake.files[("wiggleverse", "meta", "main", "rfcs/feat.md")]["content"]
|
||||||
|
e = entry_mod.parse(written)
|
||||||
|
assert e.unreviewed is False
|
||||||
|
assert e.reviewed_by == "ben"
|
||||||
|
|
||||||
|
|
||||||
def test_mark_reviewed_forbidden_for_non_superuser(app_with_fake_gitea):
|
def test_mark_reviewed_forbidden_for_non_superuser(app_with_fake_gitea):
|
||||||
|
|||||||
Reference in New Issue
Block a user