From 64e87b1d017d355668d4bc37f344e479ad879e09 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Fri, 12 May 2017 21:12:45 +0200 Subject: [PATCH] Extend Submission Prefiller view tests --- .../templates/submissions/new_submission.html | 2 +- submissions/test_views.py | 57 +++++++++++++------ 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/submissions/templates/submissions/new_submission.html b/submissions/templates/submissions/new_submission.html index ba80d4cb1..a9088e3a8 100644 --- a/submissions/templates/submissions/new_submission.html +++ b/submissions/templates/submissions/new_submission.html @@ -54,7 +54,6 @@ $(document).ready(function(){ <div class="row mb-5"> <div class="col-12"> {% if perms.scipost.can_submit_manuscript %} - {% if form.arxiv_link.value %} <form id="full_submission_form" action="{% url 'submissions:submit_manuscript' %}" method="post"> {% csrf_token %} @@ -64,6 +63,7 @@ $(document).ready(function(){ </p> <input type="submit" class="btn btn-secondary"/> </form> + {% else %} {% endif %} {% else %} diff --git a/submissions/test_views.py b/submissions/test_views.py index 0ef83d526..249c7a38d 100644 --- a/submissions/test_views.py +++ b/submissions/test_views.py @@ -4,9 +4,12 @@ from django.test import Client from common.helpers.test import add_groups_and_permissions from scipost.factories import ContributorFactory -from scipost.models import Contributor +# from scipost.models import Contributor +from .constants import STATUS_UNASSIGNED from .factories import EICassignedSubmissionFactory +from .forms import SubmissionForm, SubmissionIdentifierForm +from .models import Submission class BaseContributorTestCase(TestCase): @@ -20,44 +23,66 @@ class BaseContributorTestCase(TestCase): class PrefillUsingIdentifierTest(BaseContributorTestCase): - def test_retrieving_existing_arxiv_paper(self): + def setUp(self): + super().setUp() + self.client = Client() + self.url = reverse('submissions:prefill_using_identifier') + self.assertTrue(self.client.login(username="Test", password="testpw")) + + def test_basic_responses(self): + # Test anonymous client is rejected client = Client() - client.login(username="Test", password="testpw") + response = client.get(self.url) + self.assertEqual(response.status_code, 403) + response = client.post(self.url, {'identifier': '1512.00030v1'}) + self.assertEqual(response.status_code, 403) - response = client.post(reverse('submissions:prefill_using_identifier'), - {'identifier': '1512.00030v1'}) + # Registered Contributor should get 200 + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + def test_retrieving_existing_arxiv_paper(self): + '''Test view with a valid post request.''' + response = self.client.post(self.url, {'identifier': '1512.00030v1'}) self.assertEqual(response.status_code, 200) + self.assertIsInstance(response.context['form'], SubmissionForm) + self.assertIsInstance(response.context['identifierform'], SubmissionIdentifierForm) + self.assertTrue(response.context['identifierform'].is_valid()) def test_still_200_ok_if_identifier_is_wrong(self): - client = Client() - client.login(username="Test", password="testpw") - - response = client.post(reverse('submissions:prefill_using_identifier'), - {'identifier': '1512.00030'}) - + response = self.client.post(self.url, {'identifier': '1512.00030'}) self.assertEqual(response.status_code, 200) class SubmitManuscriptTest(BaseContributorTestCase): def test_submit_correct_manuscript(self): client = Client() - client.login(username="Test", password="testpw") + # Unauthorized request shouldn't be possible response = client.post(reverse('submissions:prefill_using_identifier'), {'identifier': '1512.00030v1'}) + self.assertEquals(response.status_code, 403) - params = response.context['form'].initial + # Registered Contributor should get 200 + self.assertTrue(client.login(username="Test", password="testpw")) + response = client.post(reverse('submissions:prefill_using_identifier'), + {'identifier': '1512.00030v1'}) + self.assertEqual(response.status_code, 200) - extras = { + # Fill form parameters + params = response.context['form'].initial + params.update({ 'discipline': 'physics', 'submitted_to_journal': 'SciPost Physics', 'submission_type': 'Article', 'domain': 'T' - } - response = client.post(reverse('submissions:submit_manuscript'), {**params, **extras}) + }) + response = client.post(reverse('submissions:submit_manuscript'), **params) self.assertEqual(response.status_code, 200) + # submission = Submission.objects.filter(status=STATUS_UNASSIGNED).last() + # raise Exception(response.content) + # self.assertIn(submission, response.context) class SubmissionDetailTest(BaseContributorTestCase): -- GitLab