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

1from postrfp.model.audit import evt_types as evt 

2 

3 

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} 

117 

118 

119def check_all_events_assigned(): 

120 """ 

121 Check all event types are assigned to a visibility category 

122 

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 

128 

129 ets = {m for m in dir(evt) if not m.startswith("__")} 

130 

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)