Skip to content
This repository has been archived by the owner on Jan 12, 2022. It is now read-only.

Commit

Permalink
* check for JID uniqueness
Browse files Browse the repository at this point in the history
  • Loading branch information
zalun committed Jul 6, 2012
1 parent 23e898b commit 042ecc8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
19 changes: 19 additions & 0 deletions apps/jetpack/tests/test_views.py
Expand Up @@ -270,6 +270,25 @@ def test_package_name_change(self):
eq_(addon2.full_name, addon2.latest.full_name)
assert rev1.name != addon2.latest.name

def test_package_jid_change(self):
jid = 'somejid'
author = self._login()
addon1 = Package(author=author, type='a')
addon1.save()
response = self.client.post(addon1.latest.get_save_url(), {
'jid': jid})
eq_(response.status_code, 200)
addon2 = Package.objects.get(pk=addon1.pk)
# no change in revision
eq_(len(addon2.revisions.all()), 1)
eq_(addon2.jid, jid)
# check adding an existing JID
addon3 = Package(author=author, type='a')
addon3.save()
response = self.client.post(addon1.latest.get_save_url(), {
'jid': jid})
eq_(response.status_code, 403)

def test_package_extra_json_change(self):
author = self._login()
addon = Package(author=author, type='a')
Expand Down
7 changes: 7 additions & 0 deletions apps/jetpack/views.py
Expand Up @@ -963,6 +963,13 @@ def save(request, id_number, type_id, revision_number=None,
return HttpResponseForbidden(escape(err.__str__()))

if jid:
try:
Package.objects.get(jid=jid)
except Package.DoesNotExist:
pass
else:
return HttpResponseForbidden(('Package with JID "%s" already '
'exists in the Builder') % jid)
revision.package.jid = jid
response_data['jid'] = jid
save_package = True
Expand Down

0 comments on commit 042ecc8

Please sign in to comment.