def setUp(self): super(TestSimulatedInAppProduct, self).setUp() self.contribution = Contribution.objects.create() self.inapp.webapp = None self.inapp.simulate = json.dumps({'result': 'postback'}) self.inapp.stub = True self.inapp.save() self.product = SimulatedInAppProduct(self.inapp)
def post(self, request, *args, **kwargs): form = PrepareInAppForm(request.DATA) if not form.is_valid(): app_pay_cef.log( request._request, 'Preparing InApp JWT Failed', 'preparing_inapp_jwt_failed', 'Preparing InApp JWT Failed error: {0}'.format(form.errors), severity=3 ) return Response(form.errors, status=status.HTTP_400_BAD_REQUEST) inapp = form.cleaned_data['inapp'] app_pay_cef.log( request._request, 'Preparing InApp JWT', 'preparing_inapp_jwt', 'Preparing InApp JWT for: {0}'.format(inapp.pk), severity=3 ) log.debug('Starting purchase of in app: {0}'.format(inapp.pk)) contribution = Contribution.objects.create( addon_id=inapp.webapp and inapp.webapp.pk, inapp_product=inapp, # In-App payments are unauthenticated so we have no user # and therefore can't determine a meaningful region. amount=None, paykey=None, price_tier=inapp.price, source=request._request.GET.get('src', ''), source_locale=request._request.LANG, type=mkt.CONTRIB_PENDING, user=None, uuid=str(uuid.uuid4()), ) log.info('Storing contrib for uuid: {0}'.format(contribution.uuid)) if inapp.simulate: log.info('Preparing in-app JWT simulation for {i}' .format(i=inapp)) product = SimulatedInAppProduct(inapp) else: log.info('Preparing in-app JWT for {i}'.format(i=inapp)) product = InAppProduct(inapp) token = get_product_jwt(product, contribution) return Response(token, status=status.HTTP_201_CREATED)