Skip to content
This repository was archived by the owner on Mar 15, 2018. It is now read-only.

Commit 9ea2e4e

Browse files
author
Rob Hudson
committed
Adjust app UUID in ids.json for reviewers (bug 1036495)
1 parent 5888716 commit 9ea2e4e

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

lib/crypto/packaged.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from django_statsd.clients import statsd
1414
from signing_clients.apps import JarExtractor
1515

16-
import amo
1716
from mkt.versions.models import Version
1817

1918

@@ -148,10 +147,20 @@ def sign(version_id, reviewer=False, resign=False, **kw):
148147
log.info('[Webapp:%s] Already signed app exists.' % app.id)
149148
return path
150149

151-
ids = json.dumps({
152-
'id': app.guid,
153-
'version': version_id
154-
})
150+
if reviewer:
151+
# Reviewers get a unique 'id' so the reviewer installed app won't
152+
# conflict with the public app, and also so multiple versions of the
153+
# same app won't conflict with themselves.
154+
ids = json.dumps({
155+
'id': 'reviewer-{guid}-{version_id}'.format(guid=app.guid,
156+
version_id=version_id),
157+
'version': version_id
158+
})
159+
else:
160+
ids = json.dumps({
161+
'id': app.guid,
162+
'version': version_id
163+
})
155164
with statsd.timer('services.sign.app'):
156165
try:
157166
sign_app(file_obj.file_path, path, ids, reviewer)

lib/crypto/tests.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,23 @@ def test_resign_already_exists(self, sign_app):
141141
packaged.sign(self.version.pk, resign=True)
142142
assert sign_app.called
143143

144+
@mock.patch('lib.crypto.packaged.sign_app')
145+
def test_sign_consumer(self, sign_app):
146+
packaged.sign(self.version.pk)
147+
assert sign_app.called
148+
ids = json.loads(sign_app.call_args[0][2])
149+
eq_(ids['id'], self.app.guid)
150+
eq_(ids['version'], self.version.pk)
151+
152+
@mock.patch('lib.crypto.packaged.sign_app')
153+
def test_sign_reviewer(self, sign_app):
154+
packaged.sign(self.version.pk, reviewer=True)
155+
assert sign_app.called
156+
ids = json.loads(sign_app.call_args[0][2])
157+
eq_(ids['id'], 'reviewer-{guid}-{version_id}'.format(
158+
guid=self.app.guid, version_id=self.version.pk))
159+
eq_(ids['version'], self.version.pk)
160+
144161
@raises(ValueError)
145162
def test_server_active(self):
146163
with self.settings(SIGNED_APPS_SERVER_ACTIVE=True):

0 commit comments

Comments
 (0)