コード例 #1
0
 def test_verify_response_status_is_true(self, auth_mock, verify_mock):
     auth_json = {
         'status': True,
         'message': 'Authorization URL created',
         'data': {
             'authorization_url':
             'https://checkout.paystack.com/9mzlnrn30akanzp',
             'access_code': '9mzlnrn30akanzp',
             'reference': 'yzlei4h480'
         }
     }
     verify_json = {
         "status": True,
         "message": "Verification successful",
         "data": {
             "amount": 27000,
             "currency": "NGN",
             "transaction_date": "2020-10-01T11:03:09.000Z",
             "status": "success",
             "reference": "yzlei4h480",
             "domain": "test",
             "metadata": 0,
             "gateway_response": "Successful",
             "message": None,
             "channel": "card"
         }
     }
     auth_mock.return_value.json.return_value = auth_json
     verify_mock.return_value.json.return_value = verify_json
     auth_response = authorize(self.passenger, 27000)
     reference = auth_response['data'].get("reference")
     verify_response = verify(self.passenger, reference)
     self.assertTrue(verify_response.get('status'))
コード例 #2
0
    def test_paystack_verification_response_keys(self):
        auth_response = authorize(self.passenger, 27000)
        auth_url = auth_response['data'].get('authorization_url')
        response = requests.get(auth_url)
        reference = auth_response['data'].get('reference')
        verify_response = verify(self.passenger, reference)
        verify_keys = verify_response.keys()
        with patch('main.paystack_api.requests.get') as verify_mock:
            verify_json = {
                "status": True,
                "message": "Verification successful",
                "data": {
                    "amount": 27000,
                    "currency": "NGN",
                    "transaction_date": "2020-10-01T11:03:09.000Z",
                    "status": "success",
                    "reference": "DG4uishudoq9OLD",
                    "domain": "test",
                    "metadata": 0,
                    "gateway_response": "Successful",
                    "message": None,
                    "channel": "card"
                }
            }
            verify_mock.return_value.json.return_value = verify_json
            mocked_keys = verify_json.keys()

        print(list(verify_keys))
        print(list(mocked_keys))
        self.assertListEqual(list(verify_keys), list(mocked_keys))
コード例 #3
0
    def get(self, request, *args, **kwargs):
        data = {}
        if 'reference' in request.query_params:
            reference = request.query_params.get('reference', "")
            response = verify(request.user, reference)
            if response.get('status', 'False'):
                # add 50 to the referral user if balance is above 200
                try:
                    if request.user.referral and request.user.account_balance >= 200 and request.user.referral_status == 'unpaid':
                        referral_user = User.objects.filter(
                            email=request.user.referral).first()
                        referral_user.account_balance += 50
                        referral_user.save()
                        request.user.referral_status = "paid"
                        request.user.save()
                except:
                    pass
                data['response'] = "success"
                data['detail'] = response.get('message')
                return Response(data=data, status=status.HTTP_202_ACCEPTED)

            else:
                data['response'] = "Error"
                data['detail'] = response.get('message')
                return Response(data=data, status=status.HTTP_400_BAD_REQUEST)

        else:
            data['response'] = "Error"
            data[
                'detail'] = "Improperly configured. No reference in verify. Please try again. If this continues, contact Dot360s"
            return Response(data=data, status=status.HTTP_400_BAD_REQUEST)
コード例 #4
0
ファイル: views.py プロジェクト: elishae621/dot360s
 def get(self, request):
     if 'reference' in request.GET:
         reference = request.GET.get('reference', "")
         response = verify(request.user, reference)
         if response.get('status', 'False'):
             # add 50 to the referral user if balance is above 200
             try:
                 if request.user.referral and request.user.account_balance >= 200 and request.user.referral_status == 'unpaid':
                     referral_user = User.objects.filter(
                         email=request.user.referral).first()
                     referral_user.account_balance += 50
                     referral_user.save()
                     request.user.referral_status = "paid"
                     request.user.save()
             except:
                 pass
             messages.add_message(request, messages.SUCCESS,
                                  response.get('message'))
             return HttpResponseRedirect(reverse("home"))
         else:
             messages.add_message(request, messages.ERROR,
                                  response.get('message'))
             return HttpResponseRedirect(reverse("fund_account"))
     else:
         messages.add_message(
             request, messages.ERROR,
             "Improperly configured. No reference in verify. Please try again. If this continues, contact Dot360s"
         )
         return HttpResponseRedirect(reverse('fund_account'))
コード例 #5
0
    def test_verify_returns_none_if_response_not_ok(self, verify_mock):
        verify_mock.return_value = Mock(ok=False)
        verify_response = verify(self.passenger, "some_reference")

        self.assertEqual(verify_response, None)
コード例 #6
0
 def test_verify_returns_none_if_unseccessful_request(self):
     verify_response = verify(self.passenger, "somecrapreference")
     self.assertEqual(verify_response, None)