def test_put_no_upsold_for_free(self): free_webapp = tempfile.NamedTemporaryFile('w', suffix='.webapp').name self.manifest_copy_over(free_webapp, 'mozball-nice-slug.webapp') free_app = self.create_app(free_webapp) free_data = self.base_data() free_data['name'] = 'mozball free' self.client.put(get_url('app', free_app.pk), data=json.dumps(free_data)) app = self.create_app() data = self.base_data() data['upsold'] = get_absolute_url(get_url('app', free_app.pk), absolute=False) res = self.client.put(self.get_url, data=json.dumps(data)) eq_(res.status_code, 400)
def test_delete(self, client): rdel = self.client.delete(get_url('account', self.account.pk)) eq_(rdel.status_code, 204) client.api.bango.package().get.return_value = {"full": payment_data} rget = self.client.get(list_url('account')) eq_(json.loads(rget.content)['objects'], [])
def test_install(self): ins = Installed.objects.create(user=self.user, addon_id=337141) res = self.client.get(self.get_url) eq_(res.status_code, 200, res.content) data = json.loads(res.content) eq_(data['installed'], [get_absolute_url(get_url('app', ins.addon.pk), absolute=False)])
def test_delete_users_admin(self): user2 = UserProfile.objects.get(pk=31337) r = Review.objects.create(addon=self.app, user=user2, body='yes') self.grant_permission(self.user, 'Users:Edit') res = self.client.delete(get_url('rating', r.pk)) eq_(res.status_code, 204) eq_(Review.objects.count(), 0)
def test_delete_app_mine(self): AddonUser.objects.filter(addon=self.app).update(user=self.user) user2 = UserProfile.objects.get(pk=31337) r = Review.objects.create(addon=self.app, user=user2, body='yes') res = self.client.delete(get_url('rating', r.pk)) eq_(res.status_code, 204) eq_(Review.objects.count(), 0)
def setUp(self): super(TestPaymentAccount, self).setUp() AccountCase.setUp(self) self.payment_url = get_absolute_url(get_url('account', pk=self.account.pk), api_name='payments', absolute=False)
def test_get_timestamps(self): fmt = '%Y-%m-%dT%H:%M:%S' rev = Review.objects.create(addon=self.app, user=self.user, body='yes') res = self.client.get(get_url('rating', rev.pk)) data = json.loads(res.content) self.assertCloseToNow(datetime.strptime(data['modified'], fmt)) self.assertCloseToNow(datetime.strptime(data['created'], fmt))
def test_only_put_by_owner(self, client): app2 = app_factory(premium_type=amo.ADDON_FREE_INAPP) AddonUser.objects.create(addon=app2, user=self.other) acct = setup_payment_account(app2, self.other).payment_account r = self.client.put(get_url('account', acct.pk), data=json.dumps(package_data)) eq_(r.status_code, 404)
def test_get_upsold(self): free = Webapp.objects.create(status=amo.STATUS_PUBLIC) AddonUpsell.objects.create(premium_id=337141, free=free) res = self.client.get(self.get_url) eq_(res.json['upsold'], self.client.get_absolute_url(get_url('app', pk=free.pk), absolute=False))
def setUp(self): self.app = app_factory() self.app_url = get_url('app', self.app.pk) self.version = self.app.current_version self.file = self.version.all_files[0] self.request = RequestFactory() super(TestVersionStatusViewSet, self).setUp()
def other(self, shared=False): other_account = PaymentAccount.objects.create(user_id=31337, solitude_seller=self.seller, bango_package_id=123, seller_uri='seller_uri', uri='uri', shared=shared) other_url = get_absolute_url( get_url('account', pk=other_account.pk), api_name='payments', absolute=False) return self.data(overrides={'payment_account': other_url})
def test_put_upsold(self): free_webapp = tempfile.NamedTemporaryFile('w', suffix='.webapp').name self.manifest_copy_over(free_webapp, 'mozball-nice-slug.webapp') free_app = self.create_app(free_webapp) free_data = self.base_data() free_data['name'] = 'mozball free' self.client.put(get_url('app', free_app.pk), data=json.dumps(free_data)) app = self.create_app() data = self.base_data() Price.objects.create(price='3.14') data['premium_type'] = 'premium' data['price'] = '3.14' data['upsold'] = get_absolute_url(get_url('app', free_app.pk), absolute=False) res = self.client.put(self.get_url, data=json.dumps(data)) eq_(res.status_code, 202) eq_(app.upsold.free, free_app)
def test_get(self, client): client.api.bango.package().get.return_value = {"full": payment_data} r = self.client.get(get_url('account', self.account.pk)) eq_(r.status_code, 200) data = json.loads(r.content) pkg = package_data.copy() pkg['resource_uri'] = '/api/v1/payments/account/%s/' % self.account.pk eq_(data, pkg)
def test_lang(self): app = app_factory(description={'fr': 'Le blah', 'en-US': 'Blah'}) url = get_url('app', app.pk) res = self.client.get(url, HTTP_ACCEPT_LANGUAGE='en-US') eq_(json.loads(res.content)['description'], 'Blah') res = self.client.get(url, HTTP_ACCEPT_LANGUAGE='fr') eq_(json.loads(res.content)['description'], 'Le blah')
def test_lang(self): app = app_factory(description={"fr": "Le blah", "en-US": "Blah"}) url = get_url("app", app.pk) res = self.client.get(url, HTTP_ACCEPT_LANGUAGE="en-US") eq_(json.loads(res.content)["description"], "Blah") res = self.client.get(url, HTTP_ACCEPT_LANGUAGE="fr") eq_(json.loads(res.content)["description"], "Le blah")
def test_put(self, client): addr = '*****@*****.**' newpkg = package_data.copy() newpkg['adminEmailAddress'] = addr r = self.client.put(get_url('account', self.account.pk), data=json.dumps(newpkg)) eq_(r.status_code, 204) d = client.api.by_url().patch.call_args[1]['data'] eq_(d['adminEmailAddress'], addr)
def setUp(self): super(TestPrices, self).setUp(api_name='webpay') self.price = Price.objects.create(name='1', price=Decimal(1)) self.currency = self.make_currency(3, self.price, 'CAD') self.list_url = list_url('prices') self.get_url = get_url('prices', self.price.pk) # If regions change, this will blow up. assert regions.BR.default_currency == 'BRL'
def test_some(self): self.add_perms() # This feels rather brittle. cache.set("%s:review_viewing:%s" % (settings.CACHE_PREFIX, 337141), 2519, 50 * 2) AppsReviewing(self.req).add(337141) res = self.client.get(self.list_url) data = json.loads(res.content) eq_(data["objects"][0]["resource_uri"], get_absolute_url(get_url("app", "337141"), absolute=False))
def test_put_bogus_payment_account(self): app = self.create_app() data = self.base_data() Price.objects.create(price='1.07') data['price'] = "1.07" data['premium_type'] = 'premium' data['payment_account'] = get_absolute_url(get_url('account', 999), 'payments', False) res = self.client.put(self.get_url, data=json.dumps(data)) eq_(res.status_code, 400) assert not hasattr(app, 'app_payment_account')
def test_put_payment_account_on_free(self, client): client.api.bango.package().get.return_value = {"full": payment_data} self.create_app() data = self.base_data() seller = SolitudeSeller.objects.create(user=self.profile, uuid='uid') acct = PaymentAccount.objects.create( user=self.profile, solitude_seller=seller, agreed_tos=True, seller_uri='uri', uri='uri', bango_package_id=123) data['payment_account'] = get_absolute_url(get_url('account', acct.pk), 'payments', False) res = self.client.put(self.get_url, data=json.dumps(data)) eq_(res.status_code, 400)
def test_some(self): self.add_perms() # This feels rather brittle. cache.set('%s:review_viewing:%s' % (settings.CACHE_PREFIX, 337141), 2519, 50 * 2) AppsReviewing(self.req).add(337141) res = self.client.get(self.list_url) data = json.loads(res.content) eq_(data['objects'][0]['resource_uri'], get_absolute_url(get_url('app', '337141'), absolute=False))
def test_upsell(self): app = self.create_app() upsell = app_factory() AddonUpsell.objects.create(free=app, premium=upsell) res = self.client.get(self.get_url) eq_(res.status_code, 200) obj = json.loads(res.content)["upsell"] eq_(obj["id"], upsell.id) eq_(obj["app_slug"], upsell.app_slug) eq_(obj["name"], upsell.name) eq_(obj["icon_url"], upsell.get_icon_url(128)) eq_(obj["resource_uri"], self.client.get_absolute_url(get_url("app", pk=upsell.id), absolute=False))
def test_upsell(self): app = self.create_app() upsell = app_factory() AddonUpsell.objects.create(free=app, premium=upsell) res = self.client.get(self.get_url) eq_(res.status_code, 200) obj = json.loads(res.content)['upsell'] eq_(obj['id'], upsell.id) eq_(obj['app_slug'], upsell.app_slug) eq_(obj['name'], upsell.name) eq_(obj['icon_url'], upsell.get_icon_url(128)) eq_(obj['resource_uri'], self.client.get_absolute_url(get_url('app', pk=upsell.id), absolute=False))
def _update(self, updated_data): # Create the original review default_data = {'body': 'Rocking the free web.', 'rating': 5} res, res_data = self._create(default_data) # Update the review default_data.update(updated_data) review = Review.objects.all()[0] json_data = json.dumps(default_data) res = self.client.put(get_url('rating', review.pk), data=json_data) try: res_data = json.loads(res.content) except ValueError: res_data = res.content return res, res_data
def _update(self, updated_data): # Create the original review default_data = { 'body': 'Rocking the free web.', 'rating': 5 } res, res_data = self._create(default_data) # Update the review default_data.update(updated_data) review = Review.objects.all()[0] json_data = json.dumps(default_data) res = self.client.put(get_url('rating', review.pk), data=json_data) try: res_data = json.loads(res.content) except ValueError: res_data = res.content return res, res_data
def test_get_payment_account(self, client): client.api.bango.package().get.return_value = {"full": payment_data} app = self.create_app() app.premium_type = amo.ADDON_PREMIUM app.save() seller = SolitudeSeller.objects.create(user=self.profile, uuid='uid') acct = PaymentAccount.objects.create( user=self.profile, solitude_seller=seller, agreed_tos=True, seller_uri='uri', uri='uri', bango_package_id=123) AddonPaymentAccount.objects.create( addon=app, payment_account=acct, set_price=1, product_uri="/path/to/app/") p = Price.objects.create(price='1.07') AddonPremium.objects.create(addon=app, price=p) acct_url = get_absolute_url(get_url('account', acct.pk), 'payments', False) res = self.client.get(self.get_url) eq_(res.status_code, 200) data = json.loads(res.content) eq_(data['payment_account'], acct_url) eq_(data['price'], '1.07')
def test_patch_other(self): res = self.client.patch(get_url('settings', '10482'), data=json.dumps({'display_name': 'foo'})) eq_(res.status_code, 403)
def setUp(self): super(TestPermission, self).setUp(api_name='account') self.get_url = get_url('permissions', '2519') self.user = UserProfile.objects.get(pk=2519)
def test_delete_comment_mine(self): r = Review.objects.create(addon=self.app, user=self.user, body='yes') res = self.client.delete(get_url('rating', r.pk)) eq_(res.status_code, 204) eq_(Review.objects.count(), 0)
def test_own(self): res = self.client.get(get_url('settings', 'mine')) eq_(res.status_code, 200) data = json.loads(res.content) eq_(data['display_name'], self.user.display_name)
def test_delete_others(self, client): rdel = self.client.delete(get_url('account', self.account.pk)) eq_(rdel.status_code, 204) eq_(self.app.reload().status, amo.STATUS_NULL)
def test_region(self): res = self.client.get(get_url('region', pk='co')) data = json.loads(res.content) eq_(data['default_currency'], regions.CO.default_currency)
def setUp(self): super(TestAppDetail, self).setUp() self.url = get_absolute_url(get_url('app', pk=337141), api_name='fireplace')
def test_other(self): eq_(self.client.get(get_url('settings', '10482')).status_code, 403)
def setUp(self, api_name='apps'): super(TestAppDetail, self).setUp(api_name=api_name) self.get_url = get_url('app', pk=337141)
def test_get_privacy_policy(self): app = self.create_app() data = self.base_data() self.client.put(self.get_url, data=json.dumps(data)) res = self.client.get(get_url('privacy', app.pk)) eq_(res.json['privacy_policy'], data['privacy_policy'])
def test_carrier(self): res = self.client.get(get_url('carrier', pk='telefonica')) data = json.loads(res.content) eq_(data['id'], carriers.TELEFONICA.id)
def test_only_get_by_owner(self, client): r = self.anon.get(get_url('account', self.account.pk)) eq_(r.status_code, 401)
def setUp(self): super(TestConfig, self).setUp(api_name='services') self.url = get_url('config', pk='site')
def url(self, app): return get_absolute_url(get_url('app', pk=app.pk), absolute=False)
def test_delete_shared(self, client): self.account.update(shared=True) rdel = self.client.delete(get_url('account', self.account.pk)) eq_(rdel.status_code, 409)
def setUp(self): super(TestAccount, self).setUp(api_name='account') self.list_url = list_url('settings') self.get_url = get_url('settings', '2519') self.user = UserProfile.objects.get(pk=2519)
def setUp(self): self.app = app_factory() self.app_url = get_url('app', self.app.pk) self.version = self.app.current_version self.request = RequestFactory() super(TestVersionViewSet, self).setUp()