示例#1
0
    def test_create_payload(self):
        self.mock_invoice.return_value = self.invoice
        self.mock_charge.return_value = self.charge
        self.mock_product.return_value = self.product
        self.mock_preview_invoice.return_value = self.invoice

        user_id = "user123"

        expected_payload = dict(
            event_id="evt_00000000000000",
            event_type="customer.subscription.created",
            uid=user_id,
            active=True,
            subscriptionId="sub_00000000000000",  # required by FxA
            subscription_id="sub_00000000000000",
            productName="Project Guardian",
            productId="prod_test1",
            eventId="evt_00000000000000",  # required by FxA
            eventCreatedAt=1326853478,  # required by FxA
            messageCreatedAt=int(time.time()),  # required by FxA
            invoice_id="in_test123",
            plan_amount=500,
            customer_id="cus_00000000000000",
            nickname="Project Guardian (Monthly)",
            created=1519435009,
            canceled_at=1519680008,
            cancel_at=None,
            cancel_at_period_end=False,
            currency="usd",
            current_period_start=1519435009,
            current_period_end=1521854209,
            next_invoice_date=1555354567,
            invoice_number="3B74E3D0-0001",
            brand="Visa",
            last4="0019",
            charge="ch_test1",
        )

        payload = StripeCustomerSubscriptionCreated(
            self.subscription_created_event).create_payload(user_id)

        self.assertEqual(payload.keys(), expected_payload.keys())
        if payload["messageCreatedAt"] != expected_payload["messageCreatedAt"]:
            self.assertAlmostEqual(
                payload["messageCreatedAt"],
                expected_payload["messageCreatedAt"],
                delta=10,
            )
            expected_payload["messageCreatedAt"] = payload["messageCreatedAt"]
        self.assertEqual(payload, expected_payload)
示例#2
0
    def test_get_user_id_fetch_error(self):
        self.mock_customer.side_effect = InvalidRequestError(
            message="invalid data", param="bad data")

        with self.assertRaises(InvalidRequestError):
            StripeCustomerSubscriptionCreated(
                self.subscription_created_event).get_user_id("cust_123")
示例#3
0
    def test_create_payload_charge_fetch_error(self):
        self.mock_invoice.return_value = self.invoice
        self.mock_charge.side_effect = InvalidRequestError(
            message="invalid data", param="bad data")

        with self.assertRaises(InvalidRequestError):
            StripeCustomerSubscriptionCreated(
                self.subscription_created_event).create_payload("cust_123")
示例#4
0
    def test_get_user_id(self):
        self.mock_customer.return_value = self.customer

        expected_user_id = "user123"
        user_id = StripeCustomerSubscriptionCreated(
            self.subscription_created_event).get_user_id("cust_123")

        assert user_id == expected_user_id
示例#5
0
    def test_run(self):
        self.mock_customer.return_value = self.customer
        self.mock_invoice.return_value = self.invoice
        self.mock_preview_invoice.return_value = self.invoice
        self.mock_charge.return_value = self.charge
        self.mock_product.return_value = self.product
        self.mock_run_pipeline = None

        did_run = StripeCustomerSubscriptionCreated(
            self.subscription_created_event).run()

        assert did_run
示例#6
0
 def run(self) -> None:
     event_type = self.payload["type"]
     if event_type == "customer.subscription.created":
         StripeCustomerSubscriptionCreated(self.payload).run()
     elif event_type == "customer.subscription.updated":
         StripeCustomerSubscriptionUpdated(self.payload).run()
     elif event_type == "customer.subscription.deleted":
         StripeCustomerSubscriptionDeleted(self.payload).run()
     elif event_type == "customer.created":
         StripeCustomerCreated(self.payload).run()
     elif event_type == "customer.deleted":
         StripeCustomerDeleted(self.payload).run()
     elif event_type == "customer.source.expiring":
         StripeCustomerSourceExpiring(self.payload).run()
     elif event_type == "invoice.payment_failed":
         StripeInvoicePaymentFailed(self.payload).run()
     else:
         pass
示例#7
0
    def test_get_user_id_none_error(self):
        self.mock_customer.return_value = self.customer_missing_user

        with self.assertRaises(ClientError):
            StripeCustomerSubscriptionCreated(
                self.subscription_created_event).get_user_id("cust_123")
示例#8
0
    def test_get_user_id_deleted_cust(self):
        self.mock_customer.return_value = self.deleted_customer

        with self.assertRaises(ClientError):
            StripeCustomerSubscriptionCreated(
                self.subscription_created_event).get_user_id("cust_1")