diff --git a/commentaries/factories.py b/commentaries/factories.py index f0bae1a0912e9a18ceb0c6f079918c595534948b..8e7addfd723b9032f998f50b57cba85fc3047037 100644 --- a/commentaries/factories.py +++ b/commentaries/factories.py @@ -29,5 +29,6 @@ class EmptyCommentaryFactory(CommentaryFactory): pub_DOI = None arxiv_identifier = None + class VettedCommentaryFactory(CommentaryFactory): vetted = True diff --git a/commentaries/test_forms.py b/commentaries/test_forms.py index 694ce19ec56c93503b879a51038f068b06947f7c..30def7b93c534f337dc37faf3bc86e60e28e5dc0 100644 --- a/commentaries/test_forms.py +++ b/commentaries/test_forms.py @@ -1,5 +1,3 @@ -import factory - from django.test import TestCase from scipost.factories import UserFactory @@ -31,12 +29,31 @@ class TestRequestCommentaryForm(TestCase): form = RequestCommentaryForm(form_data, user=self.user) self.assertTrue(form.is_valid()) - # def test_form_has_no_identifiers(self): - # """Test invalid form has no DOI nor Arxiv ID""" - # form_data = self.valid_form_data - # form_data['pub_DOI'] = '' - # form_data['arxiv_identifier'] = '' - # form = RequestCommentaryForm(form_data, user=self.user) - # form_response = form.is_valid() - # print(form_response) - # self.assertFormError(form_response, form, 'arxiv_identifier', None) + def test_form_has_no_identifiers(self): + """Test invalid form has no DOI nor Arxiv ID""" + form_data = self.valid_form_data + form_data['pub_DOI'] = '' + form_data['arxiv_identifier'] = '' + form = RequestCommentaryForm(form_data, user=self.user) + self.assertFalse(form.is_valid()) + self.assertTrue('arxiv_identifier' in form.errors) + self.assertTrue('pub_DOI' in form.errors) + + def test_form_with_duplicate_identifiers(self): + """Test form response with already existing identifiers""" + # Create a factory instance containing Arxiv ID and DOI + VettedCommentaryFactory.create() + + # Test duplicate DOI entry + form_data = self.valid_form_data + form_data['arxiv_identifier'] = '' + form = RequestCommentaryForm(form_data, user=self.user) + self.assertTrue('pub_DOI' in form.errors) + self.assertFalse(form.is_valid()) + + # Test duplicate Arxiv entry + form_data = self.valid_form_data + form_data['pub_DOI'] = '' + form = RequestCommentaryForm(form_data, user=self.user) + self.assertTrue('arxiv_identifier' in form.errors) + self.assertFalse(form.is_valid()) diff --git a/commentaries/test_views.py b/commentaries/test_views.py index e6cc591f82f92345fe466d9dad9a23fe0d24063f..682a28b4b229b6ac21ae42325e0619f65f303f57 100644 --- a/commentaries/test_views.py +++ b/commentaries/test_views.py @@ -1,7 +1,7 @@ -from django.contrib.auth.models import Group from django.core.urlresolvers import reverse from django.test import TestCase + class RequestCommentaryTest(TestCase): """Test cases for `request_commentary` view method""" fixtures = ['permissions', 'groups', 'contributors']