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

Commit

Permalink
Use package ID for bango reg. (bug 794695)
Browse files Browse the repository at this point in the history
  • Loading branch information
kumar303 committed Dec 20, 2012
1 parent 858cf09 commit a272be2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions migrations/511-dev-bango-package-id.sql
@@ -0,0 +1 @@
ALTER TABLE payment_accounts ADD COLUMN bango_package_id int(11) unsigned;
7 changes: 7 additions & 0 deletions mkt/developers/models.py
Expand Up @@ -46,6 +46,7 @@ class PaymentAccount(amo.models.ModelBase):
uri = models.CharField(max_length=255, unique=True)
# A soft-delete so we can talk to Solitude asynchronously.
inactive = models.BooleanField(default=False)
bango_package_id = models.IntegerField(blank=True, null=True)

BANGO_PACKAGE_VALUES = (
'adminEmailAddress', 'supportEmailAddress', 'financeEmailAddress',
Expand Down Expand Up @@ -91,6 +92,7 @@ def create_bango(cls, user, form_data):

obj = cls.objects.create(user=user, uri=uri,
seller_uri=user_seller.resource_uri,
bango_package_id=res['package_id'],
name=form_data['account_name'])

log.info('[User:%s] Created Bango payment account (uri: %s)' %
Expand Down Expand Up @@ -176,12 +178,17 @@ def create(cls, provider, addon, payment_account):

@classmethod
def _create_bango(cls, product_uri, addon, payment_account, secret):
if not payment_account.bango_package_id:
raise NotImplementedError('Currently we only support Bango '
'so the associated account must '
'have a bango_package_id')
# Create the Bango product via Solitude.
res = client.upsert(
method='product_bango',
params={'seller_bango': payment_account.uri,
'seller_product': product_uri,
'name': addon.name,
'packageId': payment_account.bango_package_id,
'categoryId': 1,
'secret': secret},
lookup_by=['seller_product'])
Expand Down
8 changes: 7 additions & 1 deletion mkt/developers/tests/test_models.py
@@ -1,6 +1,7 @@
from datetime import datetime, timedelta

import fudge
from fudge.inspector import arg
from nose.tools import eq_
from mock import Mock, patch

Expand Down Expand Up @@ -88,13 +89,17 @@ def setUp(self):
@patch('mkt.developers.models.SolitudeSeller.create')
def test_create_bango(self, solselc, client):
solselc.return_value = Mock(resource_uri='selluri')
client.post_package.return_value = {'resource_uri': 'zipzap'}
client.post_package.return_value = {
'resource_uri': 'zipzap',
'package_id': 123,
}

res = PaymentAccount.create_bango(
self.user, {'account_name': 'Test Account'})
eq_(res.name, 'Test Account')
eq_(res.user, self.user)
eq_(res.seller_uri, 'selluri')
eq_(res.bango_package_id, 123)
eq_(res.uri, 'zipzap')

client.post_package.assert_called_with(
Expand Down Expand Up @@ -151,6 +156,7 @@ def test_create(self, client):
.with_args(method='product_bango',
params={'seller_bango': 'acuri',
'seller_product': 'gpuri',
'packageId': arg.any(),
'name': self.app.name, 'categoryId': 1,
'secret': 'poop'},
lookup_by=['seller_product'])
Expand Down

0 comments on commit a272be2

Please sign in to comment.