From e0e01db71883d003cc3824da6812500e0eafaabb Mon Sep 17 00:00:00 2001 From: Andy McKay Date: Thu, 27 Jun 2013 09:38:40 -0700 Subject: [PATCH] add app-domain to the receipt (bug 867265) --- mkt/receipts/tests/test_models.py | 6 +++--- mkt/receipts/utils.py | 4 ++-- mkt/webapps/models.py | 3 +++ mkt/webapps/tests/test_models.py | 5 +++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mkt/receipts/tests/test_models.py b/mkt/receipts/tests/test_models.py index c0bc9360592..d6aed6c1659 100644 --- a/mkt/receipts/tests/test_models.py +++ b/mkt/receipts/tests/test_models.py @@ -135,13 +135,13 @@ def test_receipt_data_reviewer(self): assert receipt['exp'] > (calendar.timegm(time.gmtime()) + (60 * 60 * 24) - TEST_LEEWAY) - @mock.patch.object(settings, 'SITE_URL', 'https://foo.com') def test_receipt_packaged(self): - webapp = addon_factory(type=amo.ADDON_WEBAPP, is_packaged=True) + webapp = addon_factory(type=amo.ADDON_WEBAPP, is_packaged=True, + app_domain='app://foo.com') user = UserProfile.objects.get(pk=5497308) ins = self.create_install(user, webapp) receipt = self.for_user(ins, 'developer') - eq_(receipt['product']['url'], settings.SITE_URL) + eq_(receipt['product']['url'], 'app://foo.com') @mock.patch.object(settings, 'SIGNING_SERVER_ACTIVE', True) @mock.patch('mkt.receipts.utils.sign') diff --git a/mkt/receipts/utils.py b/mkt/receipts/utils.py index 08a98a549a6..e0300063f9e 100644 --- a/mkt/receipts/utils.py +++ b/mkt/receipts/utils.py @@ -18,11 +18,11 @@ def create_receipt(installed, flavour=None): 'Invalid flavour: %s' % flavour) webapp = installed.addon - origin = (settings.SITE_URL if webapp.is_packaged else webapp.origin) time_ = calendar.timegm(time.gmtime()) typ = 'purchase-receipt' - product = {'url': origin, 'storedata': urlencode({'id': int(webapp.pk)})} + product = {'storedata': urlencode({'id': int(webapp.pk)}), + 'url': webapp.origin} # Generate different receipts for reviewers or developers. expiry = time_ + settings.WEBAPPS_RECEIPT_EXPIRY_SECONDS diff --git a/mkt/webapps/models.py b/mkt/webapps/models.py index 330e1f6054c..1c45299d2a7 100644 --- a/mkt/webapps/models.py +++ b/mkt/webapps/models.py @@ -313,6 +313,9 @@ def device_types(self): @property def origin(self): + if self.is_packaged: + return self.app_domain + parsed = urlparse.urlparse(self.get_manifest_url()) return '%s://%s' % (parsed.scheme, parsed.netloc) diff --git a/mkt/webapps/tests/test_models.py b/mkt/webapps/tests/test_models.py index 6552dfcb2d4..8abd8b2b758 100644 --- a/mkt/webapps/tests/test_models.py +++ b/mkt/webapps/tests/test_models.py @@ -154,6 +154,11 @@ def test_get_origin(self): webapp = Webapp(manifest_url=url) eq_(webapp.origin, 'http://www.xx.com:4000') + def test_get_packaged_origin(self): + webapp = Webapp(app_domain='app://foo.com', is_packaged=True, + manifest_url='') + eq_(webapp.origin, 'app://foo.com') + def test_reviewed(self): assert not Webapp().is_unreviewed()