feat(cases): enforce purpose-bound case governance
Module Package Release / publish-packages (push) Successful in 12s
Module Package Release / publish-packages (push) Successful in 12s
This commit is contained in:
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user