SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 754e6d80 authored by Jorran de Wit's avatar Jorran de Wit
Browse files

Fix test on false-positive test result

Method test_form_with_duplicate_*'s second part
 gave a false-positive result as the form_data
 contained neither a DOI nor a Arxiv ID. The
 tests came back positive but actually they were
 not.
parent 5508f674
No related branches found
No related tags found
No related merge requests found
...@@ -69,6 +69,8 @@ class RequestCommentaryForm(forms.ModelForm): ...@@ -69,6 +69,8 @@ class RequestCommentaryForm(forms.ModelForm):
self.existing_commentary = get_object_or_404( self.existing_commentary = get_object_or_404(
Commentary, Commentary,
arxiv_identifier=cleaned_data['arxiv_identifier']) arxiv_identifier=cleaned_data['arxiv_identifier'])
if not self.existing_commentary:
raise
self.add_error('arxiv_identifier', msg) self.add_error('arxiv_identifier', msg)
elif (cleaned_data['pub_DOI'] and elif (cleaned_data['pub_DOI'] and
Commentary.objects.filter(pub_DOI=cleaned_data['pub_DOI']).exists()): Commentary.objects.filter(pub_DOI=cleaned_data['pub_DOI']).exists()):
......
...@@ -15,6 +15,11 @@ class TestRequestCommentaryForm(TestCase): ...@@ -15,6 +15,11 @@ class TestRequestCommentaryForm(TestCase):
self.user = UserFactory() self.user = UserFactory()
self.valid_form_data = model_form_data(factory_instance, RequestCommentaryForm) self.valid_form_data = model_form_data(factory_instance, RequestCommentaryForm)
def empty_and_return_form_data(self, key):
"""Empty specific valid_form_data field and return"""
self.valid_form_data[key] = None
return self.valid_form_data
def test_valid_data_is_valid_for_arxiv(self): def test_valid_data_is_valid_for_arxiv(self):
"""Test valid form for Arxiv identifier""" """Test valid form for Arxiv identifier"""
form_data = self.valid_form_data form_data = self.valid_form_data
...@@ -39,21 +44,31 @@ class TestRequestCommentaryForm(TestCase): ...@@ -39,21 +44,31 @@ class TestRequestCommentaryForm(TestCase):
self.assertTrue('arxiv_identifier' in form.errors) self.assertTrue('arxiv_identifier' in form.errors)
self.assertTrue('pub_DOI' in form.errors) self.assertTrue('pub_DOI' in form.errors)
def test_form_with_duplicate_identifiers(self): def test_form_with_duplicate_DOI(self):
"""Test form response with already existing identifiers""" """Test form response with already existing DOI"""
# Create a factory instance containing Arxiv ID and DOI # Create a factory instance containing Arxiv ID and DOI
VettedCommentaryFactory.create() VettedCommentaryFactory.create()
# Test duplicate DOI entry # Test duplicate DOI entry
form_data = self.valid_form_data form_data = self.empty_and_return_form_data('arxiv_identifier')
form_data['arxiv_identifier'] = ''
form = RequestCommentaryForm(form_data, user=self.user) form = RequestCommentaryForm(form_data, user=self.user)
self.assertTrue('pub_DOI' in form.errors) self.assertTrue('pub_DOI' in form.errors)
self.assertFalse(form.is_valid()) self.assertFalse(form.is_valid())
# Check is existing commentary is valid
existing_commentary = form.get_existing_commentary()
self.assertEqual(existing_commentary.pub_DOI, form_data['pub_DOI'])
def test_form_with_duplicate_arxiv_id(self):
"""Test form response with already existing Arxiv ID"""
VettedCommentaryFactory.create()
# Test duplicate Arxiv entry # Test duplicate Arxiv entry
form_data = self.valid_form_data form_data = self.empty_and_return_form_data('pub_DOI')
form_data['pub_DOI'] = ''
form = RequestCommentaryForm(form_data, user=self.user) form = RequestCommentaryForm(form_data, user=self.user)
self.assertTrue('arxiv_identifier' in form.errors) self.assertTrue('arxiv_identifier' in form.errors)
self.assertFalse(form.is_valid()) self.assertFalse(form.is_valid())
# Check is existing commentary is valid
existing_commentary = form.get_existing_commentary()
self.assertEqual(existing_commentary.arxiv_identifier, form_data['arxiv_identifier'])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment