Skip to content

Commit

Permalink
Fixes #1873. ValueError at /ipr/new-specific. Commit ready for merge
Browse files Browse the repository at this point in the history
 - Legacy-Id: 10624
  • Loading branch information
rpcross committed Dec 22, 2015
1 parent ebfebde commit 57f3acb
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
7 changes: 7 additions & 0 deletions ietf/ipr/fields.py
Expand Up @@ -41,6 +41,10 @@ def prepare_value(self, value):
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]
Expand All @@ -57,6 +61,9 @@ def clean(self, value):
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]
Expand Down
2 changes: 1 addition & 1 deletion ietf/ipr/forms.py
Expand Up @@ -134,7 +134,7 @@ def clean(self):
raise forms.ValidationError('Submitter information must be provided in section VII')

return cleaned_data

def save(self, *args, **kwargs):
nargs = self.cleaned_data.copy()
same_as_ii_above = nargs.get('same_as_ii_above')
Expand Down
26 changes: 26 additions & 0 deletions ietf/ipr/tests.py
Expand Up @@ -404,6 +404,32 @@ def test_update(self):
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()
original_ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
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')
Expand Down

0 comments on commit 57f3acb

Please sign in to comment.