Esempio n. 1
0
 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)
Esempio n. 2
0
    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'], [])
Esempio n. 3
0
 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)])
Esempio n. 4
0
 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)
Esempio n. 5
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)
Esempio n. 6
0
 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)
Esempio n. 7
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)
Esempio n. 8
0
 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))
Esempio n. 9
0
 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)
Esempio n. 10
0
 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))
Esempio n. 11
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)
Esempio n. 12
0
 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()
Esempio n. 13
0
 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)
Esempio n. 14
0
 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()
Esempio n. 15
0
 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))
Esempio n. 16
0
    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'], [])
Esempio n. 17
0
 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})
Esempio n. 18
0
 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)
Esempio n. 19
0
    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)
Esempio n. 20
0
    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')
Esempio n. 21
0
    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")
Esempio n. 22
0
 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)
Esempio n. 23
0
    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')
Esempio n. 24
0
    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)
Esempio n. 25
0
    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'
Esempio n. 26
0
 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)
Esempio n. 27
0
    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))
Esempio n. 28
0
 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')
Esempio n. 29
0
 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)
Esempio n. 30
0
    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))
Esempio n. 31
0
 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))
Esempio n. 32
0
 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))
Esempio n. 33
0
    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
Esempio n. 34
0
    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
Esempio n. 35
0
 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')
Esempio n. 36
0
 def test_patch_other(self):
     res = self.client.patch(get_url('settings', '10482'),
                             data=json.dumps({'display_name': 'foo'}))
     eq_(res.status_code, 403)
Esempio n. 37
0
 def setUp(self):
     super(TestPermission, self).setUp(api_name='account')
     self.get_url = get_url('permissions', '2519')
     self.user = UserProfile.objects.get(pk=2519)
Esempio n. 38
0
 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)
Esempio n. 39
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)
Esempio n. 40
0
    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)
Esempio n. 41
0
 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)
Esempio n. 42
0
 def setUp(self):
     super(TestAppDetail, self).setUp()
     self.url = get_absolute_url(get_url('app', pk=337141),
                                 api_name='fireplace')
Esempio n. 43
0
 def test_other(self):
     eq_(self.client.get(get_url('settings', '10482')).status_code, 403)
Esempio n. 44
0
 def setUp(self, api_name='apps'):
     super(TestAppDetail, self).setUp(api_name=api_name)
     self.get_url = get_url('app', pk=337141)
Esempio n. 45
0
 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'])
Esempio n. 46
0
 def test_carrier(self):
     res = self.client.get(get_url('carrier', pk='telefonica'))
     data = json.loads(res.content)
     eq_(data['id'], carriers.TELEFONICA.id)
Esempio n. 47
0
 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)
Esempio n. 48
0
    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)
Esempio n. 49
0
 def test_carrier(self):
     res = self.client.get(get_url('carrier', pk='telefonica'))
     data = json.loads(res.content)
     eq_(data['id'], carriers.TELEFONICA.id)
Esempio n. 50
0
 def test_only_get_by_owner(self, client):
     r = self.anon.get(get_url('account', self.account.pk))
     eq_(r.status_code, 401)
Esempio n. 51
0
 def setUp(self):
     super(TestConfig, self).setUp(api_name='services')
     self.url = get_url('config', pk='site')
Esempio n. 52
0
 def url(self, app):
     return get_absolute_url(get_url('app', pk=app.pk), absolute=False)
Esempio n. 53
0
 def test_only_get_by_owner(self, client):
     r = self.anon.get(get_url('account', self.account.pk))
     eq_(r.status_code, 401)
Esempio n. 54
0
 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)
Esempio n. 55
0
 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)
Esempio n. 56
0
 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()
Esempio n. 57
0
 def setUp(self, api_name='apps'):
     super(TestAppDetail, self).setUp(api_name=api_name)
     self.get_url = get_url('app', pk=337141)