feat(cases): enforce purpose-bound case governance
Module Package Release / publish-packages (push) Successful in 12s

This commit is contained in:
2026-08-24 20:05:31 +02:00
parent 9435116299
commit 17415d8831
28 changed files with 786 additions and 142 deletions
+12 -1
View File
@@ -75,7 +75,7 @@ class CasesRecordSourceTests(unittest.TestCase):
def test_resolves_exact_currently_authorized_case_revision(self) -> None:
with patch(
"govoplan_cases.backend.record_source.can_access_case", return_value=True
):
) as can_access:
result = CasesRecordSource().resolve(
self.session,
Principal(),
@@ -83,9 +83,20 @@ class CasesRecordSourceTests(unittest.TestCase):
purpose="preserve decision basis",
)
can_access.assert_called_once_with(
self.session,
unittest.mock.ANY,
case_id="case-1",
permission="read",
purpose="preserve decision basis",
)
self.assertEqual("2026/C-1 - Permit application", result.label)
self.assertEqual(64, len(result.content_sha256 or ""))
self.assertEqual("review", result.metadata["status_key"])
self.assertEqual(
"/cases/case-1?purpose=preserve%20decision%20basis",
result.launch_url,
)
def test_object_access_is_rechecked_and_fails_closed(self) -> None:
with (