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!'] )
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)
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)
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)
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)
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.'] })
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')
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)
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"])
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')
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!'] )
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 })
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())
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())
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())
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())
def test_valid_form(self): form_data = {'origin_account': 1, 'dest_account': 2, 'amount': 20} form = PaymentForm(form_data) self.assertTrue(form.is_valid())
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())
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())
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())
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())
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())
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())
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())
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)
def get_form(self, payment, data=None): return PaymentForm(self.get_hidden_fields(payment), self.endpoint_form, self._method)