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