Пример #1
0
    def test_advertiser_invoice_create(self):
        url = reverse("admin:adserver_advertiser_changelist")
        data = {
            "action": "action_create_draft_invoice",
            "_selected_action": [str(self.advertiser.pk)],
        }
        resp = self.client.post(url, data, follow=True)
        self.assertContains(resp, "Stripe is not configured")

        with override_settings(
            STRIPE_LIVE_SECRET_KEY="test-12345", STRIPE_ENABLED=True
        ):
            with mock.patch("stripe.InvoiceItem.create") as _, mock.patch(
                "stripe.Invoice.create"
            ) as invoice_create, mock.patch(
                "adserver.admin.Invoice.sync_from_stripe_data"
            ) as _2:
                # No Stripe ID for this advertiser
                resp = self.client.post(url, data, follow=True)
                self.assertContains(resp, "No Stripe customer ID")

                self.advertiser.djstripe_customer = self.stripe_customer
                self.advertiser.save()

                invoice_create.return_value = stripe.Invoice(id="inv_98765")

                resp = self.client.post(url, data, follow=True)
                self.assertContains(resp, "New Stripe invoice")
Пример #2
0
    def test_pay_invoice_params(self):
        invoice = stripe.Invoice(id="ii_pay")
        invoice.pay(source="src_foo")

        self.requestor_mock.request.assert_called_with(
            'post', '/v1/invoices/ii_pay/pay', {
                'source': 'src_foo',
            }, None)
    def test_pay_invoice(self):
        invoice = stripe.Invoice(id="ii_pay")
        invoice.pay()

        self.requestor_mock.request.assert_called_with(
            'post',
            '/v1/invoices/ii_pay/pay',
            {},
        )
Пример #4
0
    def test_flight_invoice_create(self):
        advertiser2 = get(Advertiser)
        campaign2 = get(Campaign, advertiser=advertiser2)
        flight2 = get(
            Flight,
            live=True,
            campaign=campaign2,
            sold_impressions=10000,
            cpm=2.2,
            start_date=self.flight.start_date,
            end_date=self.flight.end_date,
            targeting_parameters={},
        )
        flight3 = get(
            Flight,
            live=True,
            campaign=campaign2,
            sold_impressions=0,
            cpm=0,
            start_date=self.flight.start_date,
            end_date=self.flight.end_date,
            targeting_parameters={},
        )

        url = reverse("admin:adserver_flight_changelist")
        data = {
            "action": "action_create_draft_invoice",
            "_selected_action": [self.flight.pk, flight2.pk, flight3.pk],
        }
        resp = self.client.post(url, data, follow=True)
        self.assertContains(resp, "Stripe is not configured")

        with override_settings(STRIPE_SECRET_KEY="test-12345"):
            with mock.patch("stripe.InvoiceItem.create") as _:
                with mock.patch("stripe.Invoice.create") as invoice_create:
                    resp = self.client.post(url, data, follow=True)
                    self.assertContains(
                        resp,
                        "All selected flights must be from a single advertiser"
                    )

                    campaign2.advertiser = self.advertiser
                    campaign2.save()

                    # No Stripe ID for this advertiser
                    resp = self.client.post(url, data, follow=True)
                    self.assertContains(resp, "No Stripe customer ID")

                    self.advertiser.stripe_customer_id = "cus_1234567890"
                    self.advertiser.save()

                    invoice_create.return_value = stripe.Invoice(
                        id="inv_98765")

                    resp = self.client.post(url, data, follow=True)
                    self.assertContains(resp, "New Stripe invoice")
Пример #5
0
    def test_pay_invoice(self):
        self.mock_response({
            'id': 'ii_pay',
            'paid': True,
        })

        invoice = stripe.Invoice(id="ii_pay")

        self.assertTrue(invoice is invoice.pay(idempotency_key='idem-foo'))
        self.assertEquals(True, invoice.paid)
        self.assertEquals('ii_pay', invoice.id)

        self.requestor_mock.request.assert_called_with(
            'post', '/v1/invoices/ii_pay/pay', {},
            {'Idempotency-Key': 'idem-foo'})
Пример #6
0
    def test_pay_invoice_params(self):
        self.mock_response({
            'id': 'ii_pay',
            'paid': True,
        })

        invoice = stripe.Invoice(id="ii_pay")

        self.assertTrue(invoice is invoice.pay(source="src_foo"))
        self.assertEquals(True, invoice.paid)
        self.assertEquals('ii_pay', invoice.id)

        self.requestor_mock.request.assert_called_with(
            'post', '/v1/invoices/ii_pay/pay', {
                'source': 'src_foo',
            }, None)