Coverage for postrfp/model/audit/visible.py: 100%
11 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
1from postrfp.model.audit import evt_types as evt
4to_participants = {
5 evt.ISSUE_ACCEPTED,
6 evt.ISSUE_CREATED,
7 evt.ISSUE_DEADLINE_REMINDER,
8 evt.ISSUE_DECLINED,
9 evt.ISSUE_DELETED,
10 evt.ISSUE_EXPIRED,
11 evt.ISSUE_RELEASED,
12 evt.ISSUE_RELEASED_UPDATEABLE,
13 evt.ISSUE_RETRACTED,
14 evt.ISSUE_REVERTED_TO_ACCEPTED,
15 evt.ISSUE_SUBMITTED,
16 evt.ISSUE_UPDATED,
17 evt.PROJECT_ACCESS_GRANTED,
18 evt.PROJECT_ACCESS_REVOKED,
19 evt.PROJECT_APPROVAL_LOGGED,
20 evt.PROJECT_APPROVAL_DELETED,
21 evt.PROJECT_ATTACHMENT_ADDED,
22 evt.PROJECT_ATTACHMENT_REMOVED,
23 evt.PROJECT_CLOSED,
24 evt.PROJECT_CREATED,
25 evt.PROJECT_DELETED,
26 evt.PROJECT_ISSUES_DEADLINE_REMINDER,
27 evt.PROJECT_ISSUES_EXPIRED,
28 evt.PROJECT_ISSUES_LOCKED,
29 evt.PROJECT_ISSUES_UNLOCKED,
30 evt.PROJECT_PUBLISHED,
31 evt.PROJECT_REVERTED_TO_DRAFT,
32 evt.PROJECT_UPDATED,
33 evt.QUESTIONNAIRE_CREATED,
34 evt.QUESTIONNAIRE_DELETED,
35 evt.QUESTIONNAIRE_IMPORTED,
36 evt.QUESTIONNAIRE_SECTION_IMPORTED,
37 evt.QUESTION_COPIED,
38 evt.QUESTION_CREATED,
39 evt.QUESTION_DELETED,
40 evt.QUESTION_EDITED,
41 evt.ROLE_CREATED,
42 evt.ROLE_DELETED,
43 evt.ROLE_UPDATED,
44 evt.SCORE_AUTOSCORE_CREATED,
45 evt.SCORE_CLEARED,
46 evt.SCORE_COMMENT_ADDED,
47 evt.SCORE_CREATED,
48 evt.SCORE_IMPORTED,
49 evt.SCORE_UPDATED,
50 evt.SECTION_ACCESS_UPDATED,
51 evt.SECTION_CREATED,
52 evt.SECTION_DELETED,
53 evt.SECTION_UPDATED,
54}
55to_respondent = {
56 evt.ANSWER_ALLOCATED,
57 evt.ANSWER_APPROVED,
58 evt.ANSWER_CREATED,
59 evt.ANSWER_IMPORTED,
60 evt.ANSWER_REJECTED,
61 evt.ANSWER_SUBMITTED_FOR_APPROVAL,
62 evt.ANSWER_UPDATED,
63 evt.ISSUE_ACCEPTED,
64 evt.ISSUE_DEADLINE_REMINDER,
65 evt.ISSUE_DECLINED,
66 evt.ISSUE_EXPIRED,
67 evt.ISSUE_RELEASED,
68 evt.ISSUE_RELEASED_UPDATEABLE,
69 evt.ISSUE_RETRACTED,
70 evt.ISSUE_REVERTED_TO_ACCEPTED,
71 evt.ISSUE_SUBMITTED,
72 evt.ISSUE_UPDATED,
73}
74to_initiator = { # visible to the organisation that initiated the event
75 evt.ORG_CREATED,
76 evt.ORG_DELETED,
77 evt.ORG_UPDATED,
78 evt.PROJECT_APPROVAL_LOGGED,
79 evt.PROJECT_APPROVAL_DELETED,
80 evt.PROJECT_NOTE_ADDED,
81 evt.PROJECT_NOTE_DELETED,
82 evt.PROJECT_NOTE_UPDATED,
83 evt.ROLE_CREATED,
84 evt.ROLE_DELETED,
85 evt.ROLE_UPDATED,
86 evt.USER_ACCEPTED_TC,
87 evt.USER_ACCOUNT_ACTIVATED,
88 evt.USER_CREATED,
89 evt.USER_DELETED,
90 evt.USER_LOGGED_IN,
91 evt.USER_LOGGED_OUT,
92 evt.USER_LOGIN_FAILED,
93 evt.USER_ACCOUNT_LOCKED,
94 evt.USER_ACCOUNT_UNLOCKED,
95 evt.USER_PASSWORD_RECOVERED,
96 evt.USER_PASSWORD_UPDATED,
97 evt.USER_ROLE_GRANTED,
98 evt.USER_ROLE_REVOKED,
99 evt.USER_UPDATED,
100 evt.WEBHOOK_CREATED,
101 evt.WEBHOOK_UPDATED,
102 evt.WEBHOOK_DELETED,
103 evt.WEBHOOK_FAILED,
104 evt.WORKFLOW_CREATED,
105 evt.WORKFLOW_UPDATED,
106 evt.WORKFLOW_DELETED,
107 evt.REF_PERMISSION_GRANTED,
108 evt.REF_PERMISSION_UPDATED,
109 evt.REF_PERMISSION_REVOKED,
110 evt.REF_CONTENT_CREATED,
111 evt.REF_CONTENT_UPDATED,
112 evt.REF_CONTENT_DELETED,
113 evt.REF_SCHEMA_CREATED,
114 evt.REF_SCHEMA_UPDATED,
115 evt.REF_SCHEMA_DELETED,
116}
119def check_all_events_assigned():
120 """
121 Check all event types are assigned to a visibility category
123 When the API lists events for buyers or respondents the visibility of each
124 event type is checked against these lists. If new event type are added they must
125 be assigned to one of these visibility categories.
126 """
127 assigned = to_initiator | to_participants | to_respondent
129 ets = {m for m in dir(evt) if not m.startswith("__")}
131 if ets != assigned:
132 odds = ets ^ assigned
133 m = f"Some Audit Event types in evt_types are unassigned in visible.py {odds}"
134 raise NameError(m)