Coverage for src / mesh / tests / workflow / helpers / workflow_state_initiators.py: 68%

25 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-05-04 12:41 +0000

1from unittest.mock import patch 

2 

3from mesh.models.orm.editorial_models import EditorSubmissionRight 

4from mesh.models.orm.factories import ( 

5 ReviewFactory, 

6 SubmissionFactory, 

7) 

8from mesh.models.orm.submission_models import ( 

9 Submission, 

10 SubmissionVersion, 

11) 

12 

13 

14class WorkflowStateInitiators: 

15 def init_submittable_submission(self, author_user, editor_user): 

16 # Create submission 

17 submission = SubmissionFactory.create(created_by=author_user) 

18 version_1 = SubmissionVersion(submission=submission, created_by=author_user) 

19 version_1.save() 

20 submission = Submission.objects.get(pk=submission.pk) 

21 

22 with patch.object(Submission, "is_submittable", lambda _: True): 

23 submission.submit(author_user) 

24 submission = Submission.objects.get(pk=submission.pk) 

25 EditorSubmissionRight.objects.create(submission=submission, user=editor_user) 

26 

27 return submission 

28 

29 def init_user_asked_for_review_on_submission(self, author_user, editor_user, reviewer_user): 

30 submission_pk = self.init_submittable_submission(author_user, editor_user).pk 

31 

32 submission = Submission.objects.get(pk=submission_pk) 

33 

34 version = submission.versions.last() 

35 review = ReviewFactory(reviewer=reviewer_user, version=version) 

36 

37 return review, submission_pk 

38 

39 def init_to_be_reviewed_submission(self, author_user, editor_user, reviewer_user): 

40 review, submission_pk = self.init_user_asked_for_review_on_submission( 

41 author_user, editor_user, reviewer_user 

42 ) 

43 review.accept( 

44 True, 

45 accept_comment="As a reviewer, I validate this submission", 

46 user=reviewer_user, 

47 ) 

48 return review, submission_pk