def create(request): client = get_client().Subscription form = SubscriptionForm(request.DATA) if not form.is_valid(): raise FormError(form.errors) data = form.braintree_data result = client.create(data) if not result.is_success: log.warning('Error on creating subscription: {0}' .format(result.message)) raise BraintreeResultError(result) braintree_subscription = result.subscription log.info('Subscription created in braintree: {0}' .format(braintree_subscription.id)) subscription = BraintreeSubscription.objects.create( paymethod=form.cleaned_data['paymethod'], seller_product=form.seller_product, provider_id=braintree_subscription.id ) log.info('Subscription created in solitude: {0}'.format(subscription.pk)) res = Namespaced( LocalSubscription(instance=subscription), Subscription(instance=braintree_subscription) ) return Response(res.data, status=201)
def create(request): client = get_client().Subscription form = SubscriptionForm(request.DATA) if not form.is_valid(): raise FormError(form.errors) data = form.braintree_data result = client.create(data) if not result.is_success: log.warning('Error on creating subscription: {0}'.format( result.message)) raise BraintreeResultError(result) braintree_subscription = result.subscription log.info('Subscription created in braintree {} for paymethod {}'.format( braintree_subscription.id, form.cleaned_data['paymethod'])) subscription = BraintreeSubscription.objects.create( amount=form.cleaned_data['amount'], paymethod=form.cleaned_data['paymethod'], seller_product=form.seller_product, provider_id=braintree_subscription.id) log.info('Subscription created in solitude: {}; braintree: {}'.format( subscription.pk, braintree_subscription.id)) res = Namespaced(mozilla=LocalSubscription(instance=subscription), braintree=Subscription(instance=braintree_subscription)) return Response(res.data, status=201)
def submit(self, expect_errors=False, data=None): if not data: data = {} submission = { 'paymethod': self.paymethod.get_uri(), 'plan_id': 'moz-brick', } submission.update(data) form = SubscriptionForm(submission) if not expect_errors: assert form.is_valid(), form.errors.as_text() return form
class TestSubscription(BraintreeTest): def setUp(self): self.form = SubscriptionForm() def test_default_name(self): eq_(self.form.get_name('not-brick'), 'Product') def test_seller_name(self): eq_(self.form.get_name('mozilla-concrete-brick'), 'Brick') def test_format_descriptor(self): for in_string, out_string in [ ('Product', 'Mozilla*Product'), ('Long Product With Space', 'Mozilla*Long Product W') ]: eq_(self.form.format_descriptor(in_string), out_string)
def test_seller_name(self): eq_(SubscriptionForm().get_name('moz-brick'), 'Recurring')
def test_format_descriptor(self): for in_string, out_string in [('Product', 'Mozilla*Product'), ('Long Product With Space', 'Mozilla*Long Product W')]: eq_(SubscriptionForm().format_descriptor(in_string), out_string)
def setUp(self): self.form = SubscriptionForm()