Minerva RLS suite: add per-role enumeration helper covering all eight roles (spec §9.1) #6
Labels
No labels
area/daily-life
area/dotfiles
area/infra
area/process
area/tooling
priority/high
priority/low
status/blocked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mike/Housekeeping#6
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Many Minerva RLS test files (legislative, testimony, opponent tracking, shared-signal, poll-watching, phone-bank) parametrize over a subset of roles — typically
[canvasser, phone_banker, poll_watcher]for field-role exclusion and onecampaign_managerpositive path.No shared fixture exercises the full eight-role set from spec §9.1:
platform_admincampaign_managerfield_organizercanvasserphone_bankerpoll_watcherintelligence_analystdata_viewerA role typo in a new RLS policy (
'canvasse'instead of'canvasser'), a policy-rename drift, or a new-role misclassification would not be caught by the current per-table tests.Proposed approach
Add a shared helper in
services/migrations/tests/conftest.py(or a newservices/migrations/tests/fixtures/roles.py):Apply to existing RLS test files as a drop-in supplement (not a replacement — per-table semantics still matter).
Why housekeeping
Cross-cutting test-infrastructure change touching 10+ RLS test files. Not tied to any single Minerva issue; belongs in the cleanup tracker rather than polluting a product-feature issue.
Acceptance criteria
services/migrations/tests/.Surfaced by
second-opinionreviewer on Minerva PR #310.