def test_insert(self): bankaccount = BankAccountFactory(balance=-10) BankTransactionFactory( bankaccount=bankaccount, amount='15.59', ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal('5.59'))
def test_status_inactive_create(self): bankaccount = BankAccountFactory(balance=100) BankTransactionFactory( bankaccount=bankaccount, amount=Decimal('150'), status=BankTransaction.STATUS_INACTIVE ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(100))
def test_bankaccount_balance(self): bankaccount = BankAccountFactory(balance=0) bts = BankTransactionSchedulerFactory( bankaccount=bankaccount, amount=10, status=BankTransactionScheduler.STATUS_ACTIVE, ) bts.clone() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(10))
def test_update(self): bankaccount = BankAccountFactory(balance=-10) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount='15.59', ) banktransaction.refresh_from_db() banktransaction.amount += Decimal('14.41') banktransaction.save() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal('20'))
def test_save_bankaccount_update_fail(self): bankaccount = BankAccountFactory(balance=0) with mock.patch.object(BankAccount, 'save', side_effect=Exception('Boom')): with self.assertRaises(Exception): BankTransactionFactory( bankaccount=bankaccount, amount='15.59', ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, 0)
def test_delete_bankaccount(self): bankaccount = BankAccountFactory() BankTransactionSchedulerFactory.create_batch(5) bankaccount_pk = bankaccount.pk bankaccount.delete() self.assertEqual( BankTransactionScheduler.objects.filter(bankaccount__pk=bankaccount_pk).count(), 0, )
def test_delete_fail(self): bankaccount = BankAccountFactory(balance=50) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount='-25', ) with mock.patch.object(BankTransaction, 'delete', side_effect=Exception('Bang')): with self.assertRaises(Exception): banktransaction.delete() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(25))
def test_delete(self): bankaccount = BankAccountFactory(balance=50) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount='-25', ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(25)) banktransaction.delete() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(50))
def test_delete_bankaccount(self): bankaccount = BankAccountFactory() tag = BankTransactionTagFactory() banktransaction = BankTransactionFactory(bankaccount=bankaccount, tag=tag) bankaccount.delete() with self.assertRaises(BankTransaction.DoesNotExist): banktransaction.refresh_from_db() # Should not be deleted. tag.refresh_from_db() self.assertTrue(tag)
def test_status_inactive_update(self): bankaccount = BankAccountFactory(balance=100) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount=Decimal('150'), ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal('250')) banktransaction.status = BankTransaction.STATUS_INACTIVE banktransaction.amount = Decimal('180') banktransaction.save() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal('250'))
def test_delete_bankaccount_update_fail(self): bankaccount = BankAccountFactory(balance=50) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount='-25', ) banktransaction_pk = banktransaction.pk with mock.patch.object(BankAccount, 'save', side_effect=Exception('Boom')): with self.assertRaises(Exception): banktransaction.delete() self.assertTrue(BankTransaction.objects.get(pk=banktransaction_pk)) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(25))
def test_update_fail(self): bankaccount = BankAccountFactory(balance=0) banktransaction = BankTransactionFactory( bankaccount=bankaccount, amount='-10', ) bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(-10)) with mock.patch.object(BankTransaction, 'save', side_effect=Exception('Bang')): with self.assertRaises(Exception): banktransaction.amount = -50 banktransaction.save() bankaccount.refresh_from_db() self.assertEqual(bankaccount.balance, Decimal(-10))