class TestInAppProduct(InAppPurchaseTest): def setUp(self): super(TestInAppProduct, self).setUp() self.contribution = Contribution.objects.create( user=self.user, webapp=self.webapp, ) self.product = InAppProduct(self.inapp) def test_external_id_with_no_domain(self): with self.settings(DOMAIN=None): eq_(self.product.external_id(), 'inapp.marketplace-dev:{0}'.format(self.inapp.pk)) def test_external_id_with_domain(self): with self.settings(DOMAIN='marketplace.allizom.org'): eq_(self.product.external_id(), 'inapp.marketplace:{0}'.format(self.inapp.pk)) def test_inapp_product(self): eq_(self.product.id(), self.inapp.pk) eq_(self.product.name(), unicode(self.inapp.name)) eq_(self.product.webapp(), self.inapp.webapp) eq_(self.product.price(), self.inapp.price) eq_(self.product.icons()[64], absolutify(self.inapp.logo_url)) eq_(self.product.description(), self.inapp.webapp.description) eq_(self.product.application_size(), None) eq_(self.product.simulation(), None) product_data = self.product.product_data(self.contribution) eq_(product_data['contrib_uuid'], self.contribution.uuid) eq_(product_data['webapp_id'], self.product.webapp().pk) eq_(product_data['inapp_id'], self.product.id()) eq_(product_data['application_size'], self.product.application_size()) eq_(product_data['public_id'], self.public_id) def test_no_url(self): self.inapp.logo_url = None with self.settings(MEDIA_URL='/media/'): eq_(self.product.icons()[64], 'http://testserver/media/img/mkt/icons/rocket-64.png') def test_no_user(self): product_data = self.product.product_data(self.contribution) ok_('buyer_email' not in product_data)