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
« prev ^ index » next coverage.py v7.13.1, created at 2026-05-04 12:41 +0000
1from unittest.mock import patch
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)
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)
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)
27 return submission
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
32 submission = Submission.objects.get(pk=submission_pk)
34 version = submission.versions.last()
35 review = ReviewFactory(reviewer=reviewer_user, version=version)
37 return review, submission_pk
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