Coverage for rfpy/auth/vendor_actions.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-29 13:25 +0000

1from rfpy.auth import perms 

2 

3 

4ADMIN_ACTIONS = {perms.MANAGE_ORGANISATION, perms.MANAGE_USERS} 

5 

6ISSUE_ACTIONS = { 

7 perms.ISSUE_ACCEPT, 

8 perms.ISSUE_DECLINE, 

9 perms.ISSUE_SUBMIT, 

10 perms.APPROVE_ANSWERS, 

11 perms.ISSUE_VIEW_WINLOSS, 

12 perms.ISSUE_VIEW_ANSWERS, 

13 perms.ISSUE_UPDATE_WORKFLOW, 

14 perms.ISSUE_SAVE_QUESTION_RESPONSE, 

15 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS, 

16} 

17 

18ISSUE_STATUS_ACTIONS = { 

19 "Not Sent": {}, 

20 "Opportunity": {perms.ISSUE_ACCEPT, perms.ISSUE_DECLINE, perms.ISSUE_VIEW_ANSWERS}, 

21 "Accepted": { 

22 perms.ISSUE_DECLINE, 

23 perms.ISSUE_SUBMIT, 

24 perms.APPROVE_ANSWERS, 

25 perms.ISSUE_VIEW_ANSWERS, 

26 perms.ISSUE_SAVE_QUESTION_RESPONSE, 

27 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS, 

28 perms.ISSUE_UPDATE_WORKFLOW, 

29 }, 

30 "Submitted": {perms.ISSUE_VIEW_ANSWERS, perms.ISSUE_VIEW_WINLOSS}, 

31 "Updateable": { 

32 perms.ISSUE_DECLINE, 

33 perms.APPROVE_ANSWERS, 

34 perms.ISSUE_VIEW_ANSWERS, 

35 perms.ISSUE_SAVE_QUESTION_RESPONSE, 

36 perms.ISSUE_VIEW_WINLOSS, 

37 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS, 

38 perms.ISSUE_UPDATE_WORKFLOW, 

39 }, 

40 "Declined": { 

41 perms.ISSUE_VIEW_ANSWERS, 

42 }, 

43 "Retracted": {}, 

44} 

45 

46ILLEGAL_AFTER_DEADLINE = { 

47 perms.ISSUE_SUBMIT, 

48 perms.ISSUE_SAVE_QUESTION_RESPONSE, 

49 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS, 

50 perms.ISSUE_UPDATE_WORKFLOW, 

51 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE, 

52 perms.APPROVE_ANSWERS, 

53} 

54 

55ANSWERING_ACTIONS = { 

56 perms.ISSUE_SAVE_QUESTION_RESPONSE, 

57 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE, 

58 perms.APPROVE_ANSWERS, 

59} 

60 

61for status_actions in ISSUE_STATUS_ACTIONS.values(): 

62 for action in status_actions: 

63 if action not in ISSUE_ACTIONS: # pragma: no cover 

64 raise Exception(f"Invalid configuration - {action} not in ISSUE_ACTIONS")