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

Commit 58048b7

Browse files
author
Andy McKay
committed
push get_permission_url through solitude for submit (bug 773452)
1 parent 7c827af commit 58048b7

File tree

4 files changed

+44
-10
lines changed

4 files changed

+44
-10
lines changed

mkt/developers/tests/test_views_paypal.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
from nose.tools import eq_
33
from pyquery import PyQuery as pq
44

5-
import waffle
6-
75
from addons.models import Addon
86
import amo
97
import amo.tests
@@ -158,6 +156,15 @@ def test_later_solitude(self, flag_is_active, client):
158156
eq_(client.patch_seller_paypal.call_args[1]['data']['paypal_id'],
159157
'a@a.com')
160158

159+
@mock.patch('mkt.developers.views.client')
160+
def test_bounce_solitude(self, client):
161+
self.create_flag(name='solitude-payments')
162+
url = 'http://foo.com'
163+
client.post_permission_url.return_value = {'token': url}
164+
self.webapp.update(premium_type=amo.ADDON_PREMIUM, paypal_id='a@.com')
165+
res = self.client.post(self.webapp.get_dev_url('paypal_setup_bounce'))
166+
eq_(pq(res.content)('section.primary a.button').attr('href'), url)
167+
161168

162169
class TestPaypalResponse(amo.tests.TestCase):
163170
fixtures = ['base/apps', 'base/users', 'webapps/337141-steamcube']

mkt/developers/views.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import amo.utils
2626
from amo import messages
2727
from amo.decorators import json_view, login_required, post_required, write
28+
from amo.helpers import absolutify, urlparams
2829
from amo.utils import escape_all
2930
from amo.urlresolvers import reverse
3031
from addons import forms as addon_forms
@@ -312,10 +313,18 @@ def paypal_setup_bounce(request, addon_id, addon, webapp):
312313
if not addon.paypal_id:
313314
messages.error(request, 'We need a PayPal email before continuing.')
314315
return redirect(addon.get_dev_url('paypal_setup'))
315-
paypal_url = paypal.get_permission_url(addon, 'management',
316-
['REFUND',
317-
'ACCESS_BASIC_PERSONAL_DATA',
318-
'ACCESS_ADVANCED_PERSONAL_DATA'])
316+
317+
dest = 'submission'
318+
perms = ['REFUND', 'ACCESS_BASIC_PERSONAL_DATA',
319+
'ACCESS_ADVANCED_PERSONAL_DATA']
320+
if waffle.flag_is_active(request, 'solitude-payments'):
321+
url = addon.get_dev_url('acquire_refund_permission')
322+
url = absolutify(urlparams(url, dest=dest))
323+
result = client.post_permission_url(data={'scope': perms, 'url': url})
324+
paypal_url = result['token']
325+
# TODO(solitude): remove this.
326+
else:
327+
paypal_url = paypal.get_permission_url(addon, dest, perms)
319328

320329
return jingo.render(request,
321330
'developers/payments/paypal-details-request.html',

mkt/submit/tests/test_views.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,8 +937,17 @@ def test_paypal_solitude(self, flag_is_active, client):
937937
eq_(client.create_seller_paypal.call_args[0][0], self.webapp)
938938
eq_(client.patch_seller_paypal.call_args[1]['data']['paypal_id'],
939939
'foo@bar.com')
940+
client.post_permissions_url.return_value = {'token': 'http://foo/'}
940941
self.assertRedirects(res, self.get_url('payments.bounce'))
941942

943+
@mock.patch('mkt.submit.views.client')
944+
def test_bounce_solitude(self, client):
945+
self.create_flag(name='solitude-payments')
946+
url = 'http://foo.com'
947+
client.post_permission_url.return_value = {'token': url}
948+
res = self.client.post(self.get_url('payments.bounce'))
949+
eq_(pq(res.content)('section.primary a.button').attr('href'), url)
950+
942951
def test_no_paypal(self):
943952
self.webapp.update(premium_type=amo.ADDON_PREMIUM)
944953
res = self.client.post(self.get_url('payments.paypal'),

mkt/submit/views.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import amo
1212
from amo.decorators import login_required
13+
from amo.helpers import absolutify, urlparams
1314
from amo.urlresolvers import reverse
1415
from addons.forms import CategoryFormSet, DeviceTypeForm
1516
from addons.models import Addon, AddonUser
@@ -224,10 +225,18 @@ def payments_paypal(request, addon_id, addon):
224225
@dev_required
225226
@submit_step('payments')
226227
def payments_bounce(request, addon_id, addon):
227-
paypal_url = paypal.get_permission_url(addon, 'submission',
228-
['REFUND',
229-
'ACCESS_BASIC_PERSONAL_DATA',
230-
'ACCESS_ADVANCED_PERSONAL_DATA'])
228+
dest = 'submission'
229+
perms = ['REFUND', 'ACCESS_BASIC_PERSONAL_DATA',
230+
'ACCESS_ADVANCED_PERSONAL_DATA']
231+
if waffle.flag_is_active(request, 'solitude-payments'):
232+
url = addon.get_dev_url('acquire_refund_permission')
233+
url = absolutify(urlparams(url, dest=dest))
234+
result = client.post_permission_url(data={'scope': perms, 'url': url})
235+
paypal_url = result['token']
236+
#TODO(solitude): remove these
237+
else:
238+
paypal_url = paypal.get_permission_url(addon, dest, perms)
239+
231240
return jingo.render(request, 'submit/payments-bounce.html', {
232241
'step': 'payments',
233242
'paypal_url': paypal_url,

0 commit comments

Comments
 (0)