def test_process_payments_fail(mocker): """Process payments.""" with mock.patch('stripe.Customer.create') as mock_customer: mock_customer.side_effect = CheckoutError('Mock') today = date.today() install = ObjectPaymentPlanInstalmentFactory( due=today+relativedelta(days=-1), amount=Decimal('1'), object_payment_plan=ObjectPaymentPlanFactory( content_object=ContactFactory(), ), ) CustomerFactory( email=install.object_payment_plan.content_object.checkout_email ) NotifyFactory() ObjectPaymentPlanInstalment.objects.process_payments() # check install.refresh_from_db() assert install.state == CheckoutState.objects.fail assert 1 == Message.objects.count() assert 'FAIL' in Message.objects.first().subject
def test_process_payments(mocker): """Process payments.""" mocker.patch('stripe.Charge.create') mocker.patch('stripe.Customer.create') today = date.today() install_1 = ObjectPaymentPlanInstalmentFactory( due=today+relativedelta(days=1), amount=Decimal('2'), object_payment_plan=ObjectPaymentPlanFactory( content_object=ContactFactory(), ), ) install_2 = ObjectPaymentPlanInstalmentFactory( due=today+relativedelta(days=-1), amount=Decimal('1'), object_payment_plan=ObjectPaymentPlanFactory( content_object=ContactFactory(), ), ) install_3 = ObjectPaymentPlanInstalmentFactory( due=today+relativedelta(days=-2), amount=Decimal('2'), object_payment_plan=ObjectPaymentPlanFactory( content_object=ContactFactory(), ), ) CustomerFactory( email=install_2.object_payment_plan.content_object.checkout_email ) CustomerFactory( email=install_3.object_payment_plan.content_object.checkout_email ) ObjectPaymentPlanInstalment.objects.process_payments() # check install_1.refresh_from_db() assert install_1.state == CheckoutState.objects.pending install_2.refresh_from_db() assert install_2.state == CheckoutState.objects.success install_3.refresh_from_db() assert install_3.state == CheckoutState.objects.success