From cec55902864e357914bd4a7cebca5a69efa09c13 Mon Sep 17 00:00:00 2001
From: Geert Kapteijns <ghkapteijns@gmail.com>
Date: Wed, 17 May 2017 10:15:54 +0200
Subject: [PATCH] fix error in commentary browse test

---
 commentaries/forms.py                         |  3 +-
 .../commentaries/commentary_list.html         |  4 +-
 commentaries/test_views.py                    | 15 +++++---
 commentaries/views.py                         | 37 ++++++++++---------
 4 files changed, 32 insertions(+), 27 deletions(-)

diff --git a/commentaries/forms.py b/commentaries/forms.py
index be071a9fb..a47a70af1 100644
--- a/commentaries/forms.py
+++ b/commentaries/forms.py
@@ -4,7 +4,8 @@ from django import forms
 from django.shortcuts import get_object_or_404
 from django.urls import reverse
 
-from .models import Commentary, COMMENTARY_PUBLISHED, COMMENTARY_PREPRINT
+from .models import Commentary
+from .constants import COMMENTARY_PUBLISHED, COMMENTARY_PREPRINT
 
 from scipost.services import DOICaller, ArxivCaller
 from scipost.models import Contributor
diff --git a/commentaries/templates/commentaries/commentary_list.html b/commentaries/templates/commentaries/commentary_list.html
index a8c92a52d..4c1b12691 100644
--- a/commentaries/templates/commentaries/commentary_list.html
+++ b/commentaries/templates/commentaries/commentary_list.html
@@ -71,7 +71,7 @@
         {% else %}
           <h2>Search results:</h3>
         {% endif %}
-        {% if object_list %}
+        {% if commentary_list %}
             {% if is_paginated %}
               <p>
               {% if page_obj.has_previous %}
@@ -88,7 +88,7 @@
             <div class="col-12">
 
             <ul class="list-group list-group-flush">
-                {% for object in object_list %}
+                {% for object in commentary_list %}
                     <li class="list-group-item">
                         {% include 'commentaries/_commentary_card_content.html' with commentary=object %}
                     </li>
diff --git a/commentaries/test_views.py b/commentaries/test_views.py
index 66fff2218..e61897f73 100644
--- a/commentaries/test_views.py
+++ b/commentaries/test_views.py
@@ -2,6 +2,7 @@ from django.core.urlresolvers import reverse
 from django.contrib.auth.models import Group
 from django.test import TestCase, Client, RequestFactory
 
+from scipost.models import Contributor
 from scipost.factories import ContributorFactory, UserFactory
 
 from .factories import UnvettedCommentaryFactory, VettedCommentaryFactory, UnpublishedVettedCommentaryFactory, \
@@ -32,7 +33,7 @@ class RequestPublishedArticleTest(TestCase):
     def setUp(self):
         add_groups_and_permissions()
         self.target = reverse('commentaries:request_published_article')
-        self.commentary_instance = UnvettedCommentaryFactory.build()
+        self.commentary_instance = UnvettedCommentaryFactory.build(requested_by=ContributorFactory())
         self.valid_form_data = model_form_data(self.commentary_instance, RequestPublishedArticleForm)
 
     def test_commentary_gets_created_with_correct_type(self):
@@ -51,7 +52,7 @@ class RequestArxivPreprintTest(TestCase):
     def setUp(self):
         add_groups_and_permissions()
         self.target = reverse('commentaries:request_arxiv_preprint')
-        self.commentary_instance = UnvettedArxivPreprintCommentaryFactory.build()
+        self.commentary_instance = UnvettedArxivPreprintCommentaryFactory.build(requested_by=ContributorFactory())
         self.valid_form_data = model_form_data(self.commentary_instance, RequestPublishedArticleForm)
         # The form field is called 'identifier', while the model field is called 'arxiv_identifier',
         # so model_form_data doesn't include it.
@@ -110,12 +111,13 @@ class VetCommentaryRequestsTest(TestCase):
         self.assertEquals(response.context['commentary_to_vet'], None)
 
         # Only vetted Commentaries exist!
-        VettedCommentaryFactory()
+        # ContributorFactory.create_batch(5)
+        VettedCommentaryFactory(requested_by=ContributorFactory())
         response = self.client.get(self.view_url)
         self.assertEquals(response.context['commentary_to_vet'], None)
 
         # Unvetted Commentaries do exist!
-        UnvettedCommentaryFactory()
+        UnvettedCommentaryFactory(requested_by=ContributorFactory())
         response = self.client.get(self.view_url)
         self.assertTrue(type(response.context['commentary_to_vet']) is Commentary)
 
@@ -125,7 +127,7 @@ class BrowseCommentariesTest(TestCase):
 
     def setUp(self):
         add_groups_and_permissions()
-        VettedCommentaryFactory(discipline='physics')
+        VettedCommentaryFactory(discipline='physics', requested_by=ContributorFactory())
         self.view_url = reverse('commentaries:browse', kwargs={
             'discipline': 'physics',
             'nrweeksback': '1'
@@ -137,7 +139,7 @@ class BrowseCommentariesTest(TestCase):
         self.assertEquals(response.status_code, 200)
 
         # The created vetted Commentary is found!
-        self.assertTrue(response.context['commentary_browse_list'].count() >= 1)
+        self.assertTrue(response.context['commentary_list'].count() >= 1)
         # The search form is passed trough the view...
         self.assertTrue(type(response.context['form']) is CommentarySearchForm)
 
@@ -146,6 +148,7 @@ class CommentaryDetailTest(TestCase):
     def setUp(self):
         add_groups_and_permissions()
         self.client = Client()
+        ContributorFactory()
         self.commentary = UnpublishedVettedCommentaryFactory()
         self.target = reverse(
             'commentaries:commentary',
diff --git a/commentaries/views.py b/commentaries/views.py
index 53d0b1c15..de97bac21 100644
--- a/commentaries/views.py
+++ b/commentaries/views.py
@@ -33,37 +33,37 @@ def request_commentary(request):
 
 @method_decorator(permission_required(
     'scipost.can_request_commentary_pages', raise_exception=True), name='dispatch')
-class RequestPublishedArticle(CreateView):
+class RequestCommentary(CreateView):
+    success_url = reverse_lazy('scipost:personal_page')
+
+    def form_valid(self, form):
+        messages.success(self.request, strings.acknowledge_request_commentary, fail_silently=True)
+        return super().form_valid(form)
+
+
+@method_decorator(permission_required(
+    'scipost.can_request_commentary_pages', raise_exception=True), name='dispatch')
+class RequestPublishedArticle(RequestCommentary):
     form_class = RequestPublishedArticleForm
     template_name = 'commentaries/request_published_article.html'
-    success_url = reverse_lazy('scipost:personal_page')
 
     def get_context_data(self, **kwargs):
-        context = super(RequestPublishedArticle, self).get_context_data(**kwargs)
-        context['doi_query_form'] = DOIToQueryForm()
+        context = super().get_context_data(**kwargs)
+        context['query_form'] = DOIToQueryForm()
         return context
 
-    def form_valid(self, form):
-        messages.success(self.request, strings.acknowledge_request_commentary)
-        return super(RequestPublishedArticle, self).form_valid(form)
-
 
 @method_decorator(permission_required(
     'scipost.can_request_commentary_pages', raise_exception=True), name='dispatch')
-class RequestArxivPreprint(CreateView):
+class RequestArxivPreprint(RequestCommentary):
     form_class = RequestArxivPreprintForm
     template_name = 'commentaries/request_arxiv_preprint.html'
-    success_url = reverse_lazy('scipost:personal_page')
 
     def get_context_data(self, **kwargs):
-        context = super(RequestArxivPreprint, self).get_context_data(**kwargs)
-        context['arxiv_query_form'] = ArxivQueryForm()
+        context = super().get_context_data(**kwargs)
+        context['query_form'] = ArxivQueryForm()
         return context
 
-    def form_valid(self, form):
-        messages.success(self.request, strings.acknowledge_request_commentary)
-        return super(RequestArxivPreprint, self).form_valid(form)
-
 
 @permission_required('scipost.can_request_commentary_pages', raise_exception=True)
 def prefill_using_DOI(request):
@@ -73,7 +73,7 @@ def prefill_using_DOI(request):
         if doi_query_form.is_valid():
             prefill_data = doi_query_form.request_published_article_form_prefill_data()
             form = RequestPublishedArticleForm(initial=prefill_data)
-            messages.success(request, strings.acknowledge_doi_query)
+            messages.success(request, strings.acknowledge_doi_query, fail_silently=True)
         else:
             form = RequestPublishedArticleForm()
 
@@ -93,7 +93,7 @@ def prefill_using_arxiv_identifier(request):
         if arxiv_query_form.is_valid():
             prefill_data = arxiv_query_form.request_arxiv_preprint_form_prefill_data()
             form = RequestArxivPreprintForm(initial=prefill_data)
-            messages.success(request, strings.acknowledge_arxiv_query)
+            messages.success(request, strings.acknowledge_arxiv_query, fail_silently=True)
         else:
             form = RequestArxivPreprintForm()
 
@@ -173,6 +173,7 @@ class CommentaryListView(ListView):
     model = Commentary
     form = CommentarySearchForm
     paginate_by = 10
+    context_object_name = 'commentary_list'
 
     def get_queryset(self):
         '''Perform search form here already to get the right pagination numbers.'''
-- 
GitLab