From a553c416c7eb23e0e87b5bc2139467d3847f9c91 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Fri, 19 May 2017 20:10:56 +0200 Subject: [PATCH] Complete tests --- commentaries/forms.py | 5 +++++ commentaries/models.py | 8 ++++---- commentaries/test_forms.py | 7 ++++++- commentaries/views.py | 5 +++++ 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/commentaries/forms.py b/commentaries/forms.py index 31c448913..37ec5748c 100644 --- a/commentaries/forms.py +++ b/commentaries/forms.py @@ -97,8 +97,13 @@ class RequestCommentaryForm(forms.ModelForm): 'pub_date': 'Format: YYYY-MM-DD' } + def __init__(self, *args, **kwargs): + self.requested_by = kwargs.pop('requested_by', None) + super().__init__(*args, **kwargs) + def save(self, *args, **kwargs): self.instance.parse_links_into_urls() + self.instance.requested_by = self.requested_by return super().save(self, *args, **kwargs) diff --git a/commentaries/models.py b/commentaries/models.py index 51490c7d8..da8321b41 100644 --- a/commentaries/models.py +++ b/commentaries/models.py @@ -16,11 +16,11 @@ class Commentary(ArxivCallable, TimeStampedModel): """ A Commentary contains all the contents of a SciPost Commentary page for a given publication. """ - requested_by = models.ForeignKey( - Contributor, blank=True, null=True, - on_delete=models.CASCADE, related_name='requested_by') + requested_by = models.ForeignKey('scipost.Contributor', blank=True, null=True, + on_delete=models.CASCADE, related_name='requested_by') vetted = models.BooleanField(default=False) - vetted_by = models.ForeignKey(Contributor, blank=True, null=True, on_delete=models.CASCADE) + vetted_by = models.ForeignKey('scipost.Contributor', blank=True, null=True, + on_delete=models.CASCADE) type = models.CharField(max_length=9, choices=COMMENTARY_TYPES) discipline = models.CharField(max_length=20, choices=SCIPOST_DISCIPLINES, default=DISCIPLINE_PHYSICS) diff --git a/commentaries/test_forms.py b/commentaries/test_forms.py index 75d5a21df..0516fc3af 100644 --- a/commentaries/test_forms.py +++ b/commentaries/test_forms.py @@ -3,7 +3,7 @@ import re from django.test import TestCase from common.helpers import model_form_data -from scipost.factories import UserFactory +from scipost.factories import UserFactory, ContributorFactory from .factories import VettedCommentaryFactory, UnvettedCommentaryFactory, UnvettedArxivPreprintCommentaryFactory from .forms import RequestCommentaryForm, RequestPublishedArticleForm, VetCommentaryForm, DOIToQueryForm, \ @@ -15,6 +15,7 @@ from common.helpers.test import add_groups_and_permissions class TestArxivQueryForm(TestCase): def setUp(self): add_groups_and_permissions() + ContributorFactory.create_batch(5) def test_new_arxiv_identifier_is_valid(self): new_identifier_data = {'identifier': '1612.07611v1'} @@ -58,6 +59,7 @@ class TestArxivQueryForm(TestCase): class TestDOIToQueryForm(TestCase): def setUp(self): add_groups_and_permissions() + ContributorFactory.create_batch(5) def test_invalid_doi_is_invalid(self): invalid_data = {'doi': 'blablab'} @@ -96,6 +98,7 @@ class TestDOIToQueryForm(TestCase): class TestVetCommentaryForm(TestCase): def setUp(self): add_groups_and_permissions() + ContributorFactory.create_batch(5) self.commentary = UnvettedCommentaryFactory.create() self.user = UserFactory() self.form_data = { @@ -158,6 +161,7 @@ class TestVetCommentaryForm(TestCase): class TestRequestPublishedArticleForm(TestCase): def setUp(self): add_groups_and_permissions() + ContributorFactory.create_batch(5) factory_instance = UnvettedCommentaryFactory.build() self.user = UserFactory() self.valid_form_data = model_form_data(factory_instance, RequestPublishedArticleForm) @@ -184,6 +188,7 @@ class TestRequestPublishedArticleForm(TestCase): class TestRequestArxivPreprintForm(TestCase): def setUp(self): add_groups_and_permissions() + ContributorFactory.create_batch(5) factory_instance = UnvettedArxivPreprintCommentaryFactory.build() self.user = UserFactory() self.valid_form_data = model_form_data(factory_instance, RequestPublishedArticleForm) diff --git a/commentaries/views.py b/commentaries/views.py index acc1a785c..b8e6b6e98 100644 --- a/commentaries/views.py +++ b/commentaries/views.py @@ -31,6 +31,11 @@ def request_commentary(request): class RequestCommentary(CreateView): success_url = reverse_lazy('scipost:personal_page') + def get_form_kwargs(self): + kwargs = super().get_form_kwargs() + kwargs['requested_by'] = self.request.user.contributor + return kwargs + def form_valid(self, form): messages.success(self.request, strings.acknowledge_request_commentary, fail_silently=True) return super().form_valid(form) -- GitLab