Coverage for src/mesh/tests/roles/test_journal_manager.py: 100%
62 statements
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
1from mesh.model.roles.journal_manager import JournalManager, JournalManagerRights
3from ...models.editorial_models import EditorSubmissionRight
4from ...models.factories import (
5 ReviewFactory,
6 SubmissionFactory,
7 SubmissionVersionFactory,
8 UserFactory,
9)
10from ...models.submission_models import Submission, SubmissionState
11from ...models.user_models import User
12from ..base_test_case import BaseTestCase
15class JournalManagerTestCase(BaseTestCase):
16 used_models = [Submission]
17 class_used_models = [User]
19 @classmethod
20 def setUpClass(cls) -> None:
21 super().setUpClass()
22 cls.user_journal_manager = UserFactory.create(journal_manager=True)
24 def test_role_active(self):
25 random_user = UserFactory.create()
26 role = JournalManager(random_user)
27 self.assertFalse(role.active)
29 role = JournalManager(self.user_journal_manager)
30 self.assertTrue(role.active)
32 def test_submissions(self):
33 """
34 All submissions are available to the journal manager except the OPENED (draft) ones.
35 """
36 submission_1 = SubmissionFactory.create()
37 submission_2 = SubmissionFactory.create(state=SubmissionState.SUBMITTED.value)
38 submission_3 = SubmissionFactory.create(state=SubmissionState.ON_REVIEW.value)
39 submission_4 = SubmissionFactory.create(state=SubmissionState.REVISION_REQUESTED.value)
40 submission_5 = SubmissionFactory.create(state=SubmissionState.REVISION_SUBMITTED.value)
41 submission_6 = SubmissionFactory.create(state=SubmissionState.ACCEPTED.value)
42 submission_7 = SubmissionFactory.create(state=SubmissionState.REJECTED.value)
44 rights = JournalManagerRights(self.user_journal_manager)
45 self.assertEqual(len(rights.submissions), 7)
46 self.assertIn(submission_1, rights.submissions)
47 self.assertIn(submission_2, rights.submissions)
48 self.assertIn(submission_3, rights.submissions)
49 self.assertIn(submission_4, rights.submissions)
50 self.assertIn(submission_5, rights.submissions)
51 self.assertIn(submission_6, rights.submissions)
52 self.assertIn(submission_7, rights.submissions)
54 def test_managed_users(self):
55 user_author_1 = UserFactory.create()
56 user_author_2 = UserFactory.create()
57 user_reviewer = UserFactory.create()
58 user_editor_1 = UserFactory.create()
59 user_editor_2 = UserFactory.create()
60 user_admin = UserFactory.create(is_superuser=True) # noqa
61 user_journal_manager = UserFactory.create(journal_manager=True)
62 user_other_journal_manager = UserFactory.create(journal_manager=True) # noqa
64 submission_1 = SubmissionFactory.create(created_by=user_author_1)
65 submission_2 = SubmissionFactory.create(created_by=user_author_2) # noqa
66 version = SubmissionVersionFactory.create(submission=submission_1)
67 ReviewFactory.create(reviewer=user_reviewer, version=version)
68 EditorSubmissionRight.objects.create(user=user_editor_1, submission=submission_1)
69 EditorSubmissionRight.objects.create(user=user_editor_2, submission=submission_1)
71 rights = JournalManagerRights(user_journal_manager)
72 users = rights.managed_users
73 self.assertEqual(len(users), 5)
74 self.assertIn(user_author_1, rights.managed_users)
75 self.assertIn(user_author_2, rights.managed_users)
76 self.assertIn(user_reviewer, rights.managed_users)
77 self.assertIn(user_editor_1, rights.managed_users)
78 self.assertIn(user_editor_2, rights.managed_users)
80 def test_can_edit_journal_sections(self):
81 rights = JournalManagerRights(self.user_journal_manager)
82 self.assertTrue(rights.can_edit_journal_sections())