From eeb08c9c1ebc844fe7b63da492798b350b022264 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Fri, 12 May 2017 23:26:37 +0200 Subject: [PATCH] Add tests Author-check CreateSubmissionView --- submissions/test_views.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/submissions/test_views.py b/submissions/test_views.py index 4a5878434..ee3a64993 100644 --- a/submissions/test_views.py +++ b/submissions/test_views.py @@ -52,6 +52,7 @@ class BaseContributorTestCase(TestCase): add_groups_and_permissions() ContributorFactory.create_batch(5) ContributorFactory.create( + user__last_name='Linder', # To pass the author check in create submissions view user__username='Test', user__password='testpw' ) @@ -111,6 +112,7 @@ class PrefillUsingIdentifierTest(BaseContributorTestCase): class SubmitManuscriptTest(BaseContributorTestCase): def test_submit_correct_manuscript(self): + '''Check is view POST request works as expected.''' client = Client() # Unauthorized request shouldn't be possible @@ -153,6 +155,41 @@ class SubmitManuscriptTest(BaseContributorTestCase): self.assertEqual(TEST_SUBMISSION['arxiv_link'], submission.arxiv_link) self.assertEqual(TEST_SUBMISSION['abstract'], submission.abstract) + def test_non_author_tries_submission(self): + '''See what happens if a non-author of an Arxiv submission submits to SciPost.''' + client = Client() + + # Contributor Linder tries to submit the Quench Action. + # Eventually this call should already give an error. Waiting for + # Arxiv caller which is under construction [Jorran de Wit, 12 May 2017] + self.assertTrue(client.login(username="Test", password="testpw")) + response = client.post(reverse('submissions:prefill_using_identifier'), + {'identifier': '1603.04689v1'}) + self.assertEqual(response.status_code, 200) + + # Fill form parameters + params = response.context['form'].initial + params.update({ + 'discipline': 'physics', + 'subject_area': 'Phys:MP', + 'submitted_to_journal': 'SciPostPhys', + 'submission_type': 'Article', + 'domain': 'T' + }) + params['metadata'] = json.dumps(params['metadata'], separators=(',', ':')) + + # Submit new Submission form + response = client.post(reverse('submissions:submit_manuscript'), params) + self.assertEqual(response.status_code, 302) + + # No real check is done here to see if submission submit is aborted. + # To be implemented after Arxiv caller. + # Temporary fix: + last_submission = Submission.objects.last() + if last_submission: + self.assertNotEqual(last_submission.title, 'The Quench Action') + self.assertNotEqual(last_submission.arxiv_identifier_w_vn_nr, '1603.04689v1') + class SubmissionDetailTest(BaseContributorTestCase): def setUp(self): -- GitLab