示例#1
0
	def test_should_apply_to_true_stripe(self, user):
		customer = Customer.objects.create(
			stripe_id="cust_TEST",
			account_balance=0,
			delinquent=False,
			subscriber=user
		)
		plan = Plan.objects.create(
			stripe_id="plan_TEST",
			amount=0,
			currency="USD",
			interval=PlanInterval.month
		)
		subscription = Subscription(
			current_period_end=timezone.now() + timedelta(days=7),
			current_period_start=timezone.now() - timedelta(days=7),
			customer=customer,
			quantity=1,
			plan=plan,
			start=timezone.now() - timedelta(days=7),
			status="active"
		)
		subscription.save()

		user.djstripe_customers.add(customer)

		assert self.tag.should_apply_to(user)
示例#2
0
    def test_upcoming_invoice_with_subscription(
        self,
        invoice_upcoming_mock,
        subscription_retrieve_mock,
        product_retrieve_mock,
        plan_retrieve_mock,
        invoice_retrieve_mock,
        payment_intent_retrieve_mock,
        paymentmethod_card_retrieve_mock,
        charge_retrieve_mock,
        balance_transaction_retrieve_mock,
    ):
        # create invoice for latest_invoice in subscription to work.
        Invoice.sync_from_stripe_data(deepcopy(FAKE_INVOICE))

        invoice = Invoice.upcoming(subscription=Subscription(
            id=FAKE_SUBSCRIPTION["id"]))
        self.assertIsNotNone(invoice)
        self.assertIsNone(invoice.id)
        self.assertIsNone(invoice.save())

        subscription_retrieve_mock.assert_called_once_with(
            api_key=ANY,
            expand=ANY,
            id=FAKE_SUBSCRIPTION["id"],
            stripe_account=None)
        plan_retrieve_mock.assert_not_called()

        self.assertIsNotNone(invoice.plan)
        self.assertEqual(FAKE_PLAN["id"], invoice.plan.id)
示例#3
0
    def test_upcoming_invoice_with_subscription(self, invoice_upcoming_mock, subscription_retrieve_mock,
                                                plan_retrieve_mock):
        invoice = Invoice.upcoming(subscription=Subscription(stripe_id=FAKE_SUBSCRIPTION["id"]))
        self.assertIsNotNone(invoice)
        self.assertIsNone(invoice.stripe_id)
        self.assertIsNone(invoice.save())

        subscription_retrieve_mock.assert_called_once_with(api_key=ANY, expand=ANY, id=FAKE_SUBSCRIPTION["id"])
        plan_retrieve_mock.assert_not_called()

        self.assertIsNotNone(invoice.plan)
        self.assertEqual(FAKE_PLAN["id"], invoice.plan.stripe_id)
示例#4
0
    def test_add_invoice_item_djstripe_objects(self, invoiceitem_create_mock, invoiceitem_sync_mock):
        invoiceitem = self.customer.add_invoice_item(
            amount=decimal.Decimal("50.00"),
            currency="eur",
            description="test",
            invoice=Invoice(stripe_id=77),
            subscription=Subscription(stripe_id=25),
        )
        self.assertEqual("pancakes", invoiceitem)

        invoiceitem_create_mock.assert_called_once_with(
            api_key=settings.STRIPE_SECRET_KEY,
            amount=5000,
            customer=self.customer.stripe_id,
            currency="eur",
            description="test",
            discountable=None,
            invoice=77,
            metadata=None,
            subscription=25,
        )