Пример #1
0
    def test_invalid_fields_set_1(self):

        data = {}
        data["creditcardnumber"] = "40a"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2012,6,5)
        data["securitycode"] = "04"
        data["amount"] = -12

        form = PaymentForm(data=data)

        self.assertEqual(
            form.errors["creditcardnumber"], ['Card number must not contain letters!']
        )

        self.assertEqual(
            form.errors["expirationdate"], ['Expiry date must be set in the future!']
        )

        self.assertEqual(
            form.errors["securitycode"], ['Security code must be three numbers!']
        )
        
        self.assertEqual(
            form.errors["amount"], ['Amount must not be negative or zero!']
        )
Пример #2
0
    def test_too_little_premium_gateways(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 100

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = PremiumGateway()
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
Пример #3
0
    def test_unavaialble_premium_gateways(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 600

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = PremiumGateway(False)
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.TOO_MANY_REQUESTS)
Пример #4
0
    def test_available_expensive_gateway(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 25

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = ExpensiveGateway()
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.OK)
Пример #5
0
    def test_functionality_case_premium(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 501

        payment = PaymentForm(data)
        payment = payment.save()
        payment = model_to_dict(payment)

        name, status = Dispatcher.dispatch(payment)

        self.assertEqual(status, HTTPStatus.OK)
        self.assertEqual(name, Dispatcher.premium_gateway.name)
Пример #6
0
    def test_blank_payment(self):

        data = {}
        data["creditcardnumber"] = None
        data["cardholder"] = None
        data["expirationdate"] = None
        data["securitycode"] = None
        data["amount"] = None

        form = PaymentForm(data=data)
        
        self.assertFalse(form.is_valid())
        self.assertEqual(form.errors, {
        'creditcardnumber': ['This field is required.'],
        'cardholder': ['This field is required.'],
        'expirationdate': ['This field is required.'],
        'amount':['This field is required.']
    })
Пример #7
0
 def createPaymentForm(request):
     try:
         if request.method == 'POST':
             form = PaymentForm(request.POST)
         return DashPaymentView.savePaymentForm(
             'dashboard/paymentPartialCreate.html', form, request)
     except Exception as e:
         print("Error: " + str(e))
         return redirect('dashboard:index')
Пример #8
0
    def test_functionality_case_unavailable_cheap(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 15

        payment = PaymentForm(data)
        payment = payment.save()
        payment = model_to_dict(payment)

        Dispatcher.cheap_gateway = CheapGateway(False)

        name, status = Dispatcher.dispatch(payment)

        self.assertEqual(status, HTTPStatus.TOO_MANY_REQUESTS)
        self.assertEqual(name, Dispatcher.cheap_gateway.name)
    def test_payment_form_valid_data(self):
        """ Test form with valid data """
        rental = Rental(address='Test address')
        maint_request = MaintRequest(property_ref=rental, title='test request')
        form = PaymentForm(property_ref=rental,
                           data={
                               'maint_request': maint_request,
                               'amount': '10'
                           })

        self.assertTrue(form.is_valid)
Пример #10
0
    def test_valid_payment(self):
        
        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 12

        form = PaymentForm(data=data)

        self.assertTrue(form.is_valid())

        payment = form.save()

        self.assertEqual(payment.creditcardnumber, data["creditcardnumber"] )
        self.assertEqual(payment.cardholder, data["cardholder"])
        self.assertEqual(payment.expirationdate, data["expirationdate"])
        self.assertEqual(payment.securitycode, data["securitycode"], )
        self.assertEqual(payment.amount, data["amount"])
Пример #11
0
 def createPayment(request):
     try:
         if request.method == 'POST':
             number = request.POST['number']
             student = Student.objects.get(number=number)
             form = PaymentForm(
                 initial={
                     'student': student,
                     'paymentDate': timezone.localtime(
                         timezone.now()).date()
                 })
         return DashPaymentView.savePaymentForm(
             'dashboard/paymentPartialCreate.html', form, request)
     except Exception as e:
         print("Error: " + str(e))
         return redirect('dashboard:index')
Пример #12
0
    def test_invalid_fields_set_2(self):

        data = {}
        data["creditcardnumber"] = "403"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2022,6,5)
        data["securitycode"] = "04a"
        data["amount"] = 0

        form = PaymentForm(data=data)

        self.assertEqual(
            form.errors["creditcardnumber"], ['Invalid card number!']
        )

        self.assertEqual(
            form.errors["securitycode"], ['Security code must be all numbers!']
        )
        
        self.assertEqual(
            form.errors["amount"], ['Amount must not be negative or zero!']
        )
Пример #13
0
def home(request):
    customer_token = None
    if request.method == 'POST':
        request.POST._mutable = True

        form = PaymentForm(request.POST)

        if form.is_valid():
            paysafe_user_id = HelperPaySafe.get_or_create_paysafe_customer_profile(
                request.user)
            customer_token = HelperPaySafe.get_single_user_customer_token(
                paysafe_user_id)
            form.data['is_submit_clicked'] = 1

            profile_instance = request.user.profile
            profile_instance.address = form.cleaned_data.get('street')
            profile_instance.mobile = form.cleaned_data.get('mobile')
            profile_instance.city = form.cleaned_data.get('city')
            profile_instance.pincode = form.cleaned_data.get('pincode')
            profile_instance.save()
    else:
        django_user_instance = request.user
        if django_user_instance.is_authenticated:
            init_data = {
                'mobile': django_user_instance.profile.mobile,
                'street': django_user_instance.profile.address,
                'city': django_user_instance.profile.city,
                'pincode': django_user_instance.profile.pincode,
                'paysafe_user_id':
                django_user_instance.profile.paysafe_user_id,
                'is_submit_clicked': 0,
            }

        else:
            init_data = {}

        form = PaymentForm(initial=init_data)
    return render(request=request,
                  template_name="home.html",
                  context={
                      'form': form,
                      'paysafe_public_key': PAYSAFE_PUBLIC_KEY,
                      'customer_token': customer_token
                  })
Пример #14
0
 def test_invalid_form_invalid_amount(self):
     form_data = {'origin_account': 1, 'dest_account': 2, 'amount': -10}
     form = PaymentForm(form_data)
     self.assertFalse(form.is_valid())
Пример #15
0
 def test_invalid_form_balance_exceeded(self):
     form_data = {'origin_account': 1, 'dest_account': 2, 'amount': 2000}
     form = PaymentForm(form_data)
     self.assertFalse(form.is_valid())
Пример #16
0
 def test_invalid_form_same_destination_acct(self):
     form_data = {'origin_account': 1, 'dest_account': 1, 'amount': 10}
     form = PaymentForm(form_data)
     self.assertFalse(form.is_valid())
Пример #17
0
 def test_can_save(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_INITIAL
     PAYMENT_DATA['sender'] = self.sender.pk
     PAYMENT_DATA['recipient'] = self.recipient.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertTrue(form.is_valid())
Пример #18
0
 def test_valid_form(self):
     form_data = {'origin_account': 1, 'dest_account': 2, 'amount': 20}
     form = PaymentForm(form_data)
     self.assertTrue(form.is_valid())
Пример #19
0
 def test_cannot_save_recipient_not_found(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_INITIAL
     PAYMENT_DATA['sender'] = self.sender.pk
     PAYMENT_DATA['recipient'] = user_test_data.USER_NOT_FOUND_PK
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #20
0
 def test_cannot_save_recipient_inactive(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_INITIAL
     PAYMENT_DATA['sender'] = self.sender.pk
     PAYMENT_DATA['recipient'] = self.inactive_user.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #21
0
 def test_cannot_save_recipient_missing(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_MISSING_RECIPIENT
     PAYMENT_DATA['sender'] = self.sender.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #22
0
 def test_cannot_save_detail_none(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_NO_DETAIL
     PAYMENT_DATA['sender'] = self.sender.pk
     PAYMENT_DATA['recipient'] = self.recipient.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #23
0
 def test_cannot_save_sender_missing(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_MISSING_SENDER
     PAYMENT_DATA['recipient'] = self.recipient.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #24
0
 def test_cannot_save_recipient_none(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_NO_AMOUNT
     PAYMENT_DATA['sender'] = self.sender.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #25
0
 def test_cannot_save_sender_none(self):
     PAYMENT_DATA = payments_test_data.PAYMENT_DATA_INITIAL
     PAYMENT_DATA['recipient'] = self.recipient.pk
     form = PaymentForm(PAYMENT_DATA)
     self.assertFalse(form.is_valid())
Пример #26
0
 def get_form(self, payment, data=None):
     """Converts *payment* into a form suitable for Django templates."""
     return PaymentForm(data=self.get_hidden_fields(payment),
                        action=self.endpoint,
                        method=self._method)
Пример #27
0
 def get_form(self, payment, data=None):
     return PaymentForm(self.get_hidden_fields(payment), self.endpoint_form,
                        self._method)