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)
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)
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)
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, )