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