Merged in [10624] from rcross@amsl.com:

Fixes #1873.  ValueError at /ipr/new-specific.
 - Legacy-Id: 10651
Note: SVN reference [10624] has been migrated to Git commit 57f3acb69c
This commit is contained in:
Henrik Levkowetz 2016-01-12 17:34:36 +00:00
commit 9d0f377242
2 changed files with 32 additions and 0 deletions

View file

@ -41,6 +41,10 @@ class SearchableIprDisclosuresField(forms.CharField):
value = ""
if isinstance(value, basestring):
pks = self.parse_select2_value(value)
# if the user posted a non integer value we need to remove it
for key in pks:
if not key.isdigit():
pks.remove(key)
value = self.model.objects.filter(pk__in=pks)
if isinstance(value, self.model):
value = [value]
@ -57,6 +61,9 @@ class SearchableIprDisclosuresField(forms.CharField):
value = super(SearchableIprDisclosuresField, self).clean(value)
pks = self.parse_select2_value(value)
if not all([ key.isdigit() for key in pks ]):
raise forms.ValidationError(u'You must enter IPR ID(s) as integers')
objs = self.model.objects.filter(pk__in=pks)
found_pks = [str(o.pk) for o in objs]

View file

@ -404,6 +404,31 @@ class IprTests(TestCase):
self.assertTrue('New IPR Submission' in outbox[0]['Subject'])
self.assertTrue('ietf-ipr@' in outbox[0]['To'])
def test_update_bad_post(self):
draft = make_test_data()
url = urlreverse("ietf.ipr.views.new", kwargs={ "type": "specific" })
# successful post
empty_outbox()
r = self.client.post(url, {
"updates": "this is supposed to be an integer",
"holder_legal_name": "Test Legal",
"holder_contact_name": "Test Holder",
"holder_contact_email": "test@holder.com",
"iprdocrel_set-TOTAL_FORMS": 1,
"iprdocrel_set-INITIAL_FORMS": 0,
"iprdocrel_set-0-document": "%s" % draft.docalias_set.first().pk,
"iprdocrel_set-0-revisions": '00',
"patent_info": "none",
"has_patent_pending": False,
"licensing": "royalty-free",
"submitter_name": "Test Holder",
"submitter_email": "test@holder.com",
})
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(q("#id_updates").parents(".form-group").hasClass("has-error"))
def test_addcomment(self):
make_test_data()
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')