def test_upcoming_invoice_with_subscription_plan( self, product_retrieve_mock, invoice_upcoming_mock, subscription_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_plan=Plan(id=FAKE_PLAN["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_plan(self, invoice_upcoming_mock, subscription_retrieve_mock, plan_retrieve_mock): invoice = Invoice.upcoming(subscription_plan=Plan(stripe_id=FAKE_PLAN["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_upcoming_invoice_error(self, invoice_upcoming_mock): with self.assertRaises(InvalidRequestError): Invoice.upcoming()
def test_no_upcoming_invoices(self, invoice_upcoming_mock): invoice = Invoice.upcoming() self.assertIsNone(invoice)