From 97fea894330695495c6f88a9062fb034f2d3db22 Mon Sep 17 00:00:00 2001 From: Geert Kapteijns <ghkapteijns@gmail.com> Date: Fri, 12 May 2017 13:16:14 +0200 Subject: [PATCH] Move prefill logic for DOI query to form. Write view test. --- commentaries/forms.py | 4 ++++ commentaries/test_views.py | 3 +-- commentaries/views.py | 6 ++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/commentaries/forms.py b/commentaries/forms.py index e1f29641d..660d8d74f 100644 --- a/commentaries/forms.py +++ b/commentaries/forms.py @@ -34,6 +34,10 @@ class DOIToQueryForm(forms.Form): def commentary_exists(self, input_doi): return Commentary.objects.filter(pub_DOI=input_doi).exists() + def request_published_article_form_prefill_data(self): + additional_form_data = {'type': 'published', 'pub_DOI': self.cleaned_data['doi']} + return {**self.crossref_data, **additional_form_data} + class IdentifierToQueryForm(forms.Form): identifier = forms.CharField(widget=forms.TextInput( diff --git a/commentaries/test_views.py b/commentaries/test_views.py index 96220a2eb..2077489c0 100644 --- a/commentaries/test_views.py +++ b/commentaries/test_views.py @@ -59,8 +59,7 @@ class PrefillUsingDOITest(TestCase): request.user = UserFactory() response = prefill_using_DOI(request) - # Not sure what to test here - raise NotImplementedError + self.assertEqual(response.status_code, 200) class VetCommentaryRequestsTest(TestCase): diff --git a/commentaries/views.py b/commentaries/views.py index 197905b17..63f9293af 100644 --- a/commentaries/views.py +++ b/commentaries/views.py @@ -91,10 +91,8 @@ def prefill_using_DOI(request): doi_query_form = DOIToQueryForm(request.POST) # The form checks if doi is valid and commentary doesn't already exist. if doi_query_form.is_valid(): - doi = doi_query_form.cleaned_data['doi'] - additional_form_data = {'type': 'published', 'pub_DOI': doi} - total_form_data = {**doi_query_form.crossref_data, **additional_form_data} - form = RequestPublishedArticleForm(initial=total_form_data) + prefill_data = doi_query_form.request_published_article_form_prefill_data() + form = RequestPublishedArticleForm(initial=prefill_data) else: form = RequestPublishedArticleForm() -- GitLab