Пример #1
0
    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'))
Пример #2
0
    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))
Пример #3
0
 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))
Пример #4
0
    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'))
Пример #5
0
    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)
Пример #6
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,
        )
Пример #7
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))
Пример #8
0
    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))
Пример #9
0
    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)
Пример #10
0
    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'))
Пример #11
0
    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))
Пример #12
0
    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))