def test_recurring_donation(self, mocker): timestamp = timezone.now().replace(microsecond=0) charge_data = { "amount": 2500, "created": int(timestamp.timestamp()), "customer": "cus_Bp0Alb14pfVB9D", "description": "Payment for invoice E28A672-0040", "id": "ch_EwJiGXbaafREhT", "invoice": "in_EwIgmFCn7cnZFB", "metadata": {}, "object": "charge", } invoice = { "id": "in_EwIgmFCn7cnZFB", "lines": { "data": [{ "amount": 2500, "plan": { "id": "donate", "product": "prod_BTLmRCZ5cpxsPH" }, }] }, } mocker.patch( "squarelet.organizations.tasks.stripe.Invoice.retrieve", return_value=invoice, ) tasks.handle_charge_succeeded(charge_data)
def test_without_invoice(self, organization_factory, mocker): timestamp = timezone.now().replace(microsecond=0) charge_data = { "amount": 2500, "created": int(timestamp.timestamp()), "customer": "cus_Bp0Alb14pfVB9D", "description": "Payment for request #123", "id": "ch_EwJiGXbaafREhT", "invoice": None, "metadata": {}, "object": "charge", } organization = organization_factory( customer__customer_id=charge_data["customer"]) mocked = mocker.patch( "squarelet.organizations.models.Charge.send_receipt") tasks.handle_charge_succeeded(charge_data) charge = Charge.objects.get(charge_id=charge_data["id"]) assert charge.amount == charge_data["amount"] assert charge.fee_amount == 0 assert charge.organization == organization assert charge.created_at == timestamp assert charge.description == charge_data["description"] mocked.assert_called_once()
def test_without_customer(self): timestamp = timezone.now().replace(microsecond=0) charge_data = { "amount": 2500, "created": int(timestamp.timestamp()), "customer": None, "description": "Payment for request #123", "id": "ch_EwJiGXbaafREhT", "invoice": None, "metadata": {}, "object": "charge", } tasks.handle_charge_succeeded(charge_data)
def test_with_invoice(self, organization_factory, mocker): timestamp = timezone.now().replace(microsecond=0) charge_data = { "amount": 2500, "created": int(timestamp.timestamp()), "customer": "cus_Bp0Alb14pfVB9D", "description": "Payment for invoice E28A672-0040", "id": "ch_EwJiGXbaafREhT", "invoice": "in_EwIgmFCn7cnZFB", "metadata": {}, "object": "charge", } organization = organization_factory( customer__customer_id=charge_data["customer"]) invoice = { "id": "in_EwIgmFCn7cnZFB", "lines": { "data": [{ "amount": 2500, "plan": { "id": "org", "product": "prod_BTLmRCZ5cpxsPH" }, }] }, } product = {"name": "Organization"} mocker.patch( "squarelet.organizations.tasks.stripe.Invoice.retrieve", return_value=invoice, ) mocker.patch( "squarelet.organizations.tasks.stripe.Product.retrieve", return_value=product, ) mocked = mocker.patch( "squarelet.organizations.models.Charge.send_receipt") tasks.handle_charge_succeeded(charge_data) charge = Charge.objects.get(charge_id=charge_data["id"]) assert charge.amount == charge_data["amount"] assert charge.fee_amount == 0 assert charge.organization == organization assert charge.created_at == timestamp assert charge.description == product["name"] mocked.assert_called_once()