def test_buy(self): self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 0) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 0) with mock.patch('the_tale.common.postponed_tasks.prototypes.PostponedTaskPrototype.cmd_wait') as cmd_wait: self.purchase.buy(account=self.account) self.assertEqual(cmd_wait.call_count, 1) self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 1) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 1) postponed_logic = PostponedTaskPrototype._db_get_object(0).internal_logic self.assertTrue(isinstance(postponed_logic, BuyPremium)) self.assertEqual(postponed_logic.account_id, self.account.id) self.assertEqual(postponed_logic.days, self.days) invoice = InvoicePrototype.get_by_id(postponed_logic.transaction.invoice_id) self.assertEqual(invoice.recipient_type, ENTITY_TYPE.GAME_ACCOUNT) self.assertEqual(invoice.recipient_id, self.account.id) self.assertEqual(invoice.sender_type, ENTITY_TYPE.GAME_LOGIC) self.assertEqual(invoice.sender_id, 0) self.assertEqual(invoice.currency, CURRENCY_TYPE.PREMIUM) self.assertEqual(invoice.amount, -self.cost) self.assertEqual(invoice.description_for_sender, 'premium-days-transaction-description') self.assertEqual(invoice.description_for_recipient, 'premium-days-transaction-description')
def get_invoice_state(self): return InvoicePrototype.get_by_id(self.invoice_id).state
def process_cancel_invoice(self, invoice_id): InvoicePrototype.get_by_id(invoice_id).cancel()
def process_confirm_invoice(self, invoice_id): InvoicePrototype.get_by_id(invoice_id).confirm()
def process_cancel_invoice(self, invoice_id): invoice = InvoicePrototype.get_by_id(invoice_id) if invoice: invoice.cancel()
def process_confirm_invoice(self, invoice_id): invoice = InvoicePrototype.get_by_id(invoice_id) if invoice: invoice.confirm()