示例#1
0
 def test756_passive_mv_targets_to_active_minus(self):
     finac.mv(dt='active.sup', ct='pass.sup', target_dt=-52)
     self.assertEqual(finac.account_balance('pass.sup'), -1.82)
     self.assertEqual(finac.account_balance('active.sup'), -52)
     finac.mv(dt='active.sup', ct='pass.sup', target_ct=-1)
     self.assertEqual(finac.account_balance('pass.sup'), -1)
     self.assertEqual(finac.account_balance('active.sup'), -51.10)
示例#2
0
 def test103_trans_move(self):
     finac.asset_create('UAH')
     finac.asset_set_rate('UAH/USD', value=0.04)
     finac.account_create('move.test', 'usd', 'current', 'Test move acc')
     finac.account_create('move1.TEST', 'UAH', 'current', 'Test move acc2')
     finac.transaction_create('move.test', 100, 'for move test')
     self.assertEqual(finac.account_balance('move.test'), 100)
     target_ct = 80
     target_dt = 1200
     finac.transaction_move('move1.TEST',
                            'move.test',
                            target_ct=target_ct,
                            tag='go ahead',
                            note='cross currency: target_ct')
     self.assertEqual(finac.account_balance('move.test'), target_ct)
     finac.transaction_move('move1.TEST',
                            'move.test',
                            target_dt=target_dt,
                            tag='ahead',
                            note='cross currency: target_dt')
     self.assertEqual(finac.account_balance('move1.test'), target_dt)
     self.assertRaises(ValueError,
                       finac.transaction_move,
                       'move1.TEST',
                       'move.test',
                       target_dt=100)
     print()
     finac.ls('move.test')
     finac.ls('move1.test')
     print()
示例#3
0
 def test730_mv_btw_passive_crosscur(self):
     finac.account_create('pass.supplier', 'eur', tp='supplier')
     finac.account_create('pass.finagent', 'usd', tp='finagent')
     self.set_balance('pass.supplier', 100)
     self.set_balance('pass.finagent', 500)
     finac.mv(dt='pass.finagent', ct='pass.supplier', amount=10, xdt=False)
     self.assertEqual(finac.account_balance('pass.supplier'), 90)
     self.assertEqual(finac.account_balance('pass.finagent'), 511)
示例#4
0
 def test200_account_balance(self):
     self.assertRaises(ValueError,
                       finac.account_balance,
                       account='USD1',
                       tp='current')
     self.assertEqual(finac.account_balance(tp='current', base='usd'), 2278)
     self.assertEqual(finac.account_balance(account=None, base='usd'),
                      7926.5)
示例#5
0
 def test710_passive_mv_from_active_crosscur(self):
     self.set_balance('active1', 100)
     self.set_balance('passive2', 10)
     finac.mv(dt='passive2', ct='active1', amount=5.5, xdt=False)
     self.assertEqual(finac.account_balance('passive2'), 5)
     self.assertEqual(finac.account_balance('active1'), 94.5)
     finac.mv(dt='passive2', ct='active1', amount=5, xdt=True)
     self.assertEqual(finac.account_balance('passive2'), 0)
     self.assertEqual(finac.account_balance('active1'), 89)
示例#6
0
 def test711_passive_mv_to_active_crosscur(self):
     self.set_balance('active1', 100)
     self.set_balance('passive2', 10)
     finac.mv(dt='active1', ct='passive2', amount=5, xdt=False)
     self.assertEqual(finac.account_balance('passive2'), 15)
     self.assertEqual(finac.account_balance('active1'), 105.5)
     finac.mv(dt='active1', ct='passive2', amount=5.5, xdt=True)
     self.assertEqual(finac.account_balance('passive2'), 20)
     self.assertEqual(finac.account_balance('active1'), 111)
示例#7
0
 def test755_passive_mv_targets_from_active_minus(self):
     finac.account_create('active.sup', 'usd')
     finac.account_create('pass.sup', 'eur', tp='tax')
     self.set_balance('active.sup', -50)
     self.set_balance('pass.sup', 0)
     finac.mv(dt='pass.sup', ct='active.sup', target_ct=-60)
     self.assertEqual(finac.account_balance('pass.sup'), -9.09)
     self.assertEqual(finac.account_balance('active.sup'), -60)
     finac.mv(dt='pass.sup', ct='active.sup', target_dt=-20)
     self.assertEqual(finac.account_balance('pass.sup'), -20)
     self.assertEqual(finac.account_balance('active.sup'), -72)
示例#8
0
 def test050_hack_overdraft(self):
     finac.account_create('TEST.HO', 'EUR', max_overdraft=100)
     tid = finac.transaction_create('TEST.HO', -100, mark_completed=False)
     self.assertEqual(finac.account_balance('TEST.HO'), -100)
     try:
         finac.transaction_create('TEST.HO', -10, mark_completed=False)
         raise RuntimeError('Overdraft hacked')
     except finac.OverdraftError:
         pass
     finac.transaction_complete(tid)
     self.assertEqual(finac.account_balance('TEST.HO'), -100)
示例#9
0
 def test041_max_balance(self):
     finac.account_create('TEST5.TEST', 'EUR', max_balance=100)
     finac.account_create('TEST6.TEST', 'EUR', max_balance=100)
     finac.transaction_create('TEST5.TEST', 10)
     try:
         finac.transaction_create('TEST5.TEST', 101)
         raise RuntimeError('OverlimitError not raised')
     except finac.OverlimitError:
         self.assertEqual(finac.account_balance('TEST5.TEST'), 10)
     finac.transaction_create('TEST6.TEST', 100)
     try:
         finac.transaction_move('TEST6.TEST', 'TEST5.TEST', 10)
         raise RuntimeError('OverlimitError not raised')
     except finac.OverlimitError:
         self.assertEqual(finac.account_balance('TEST5.TEST'), 10)
         self.assertEqual(finac.account_balance('TEST6.TEST'), 100)
示例#10
0
 def test902_custom_account_types(self):
     if config.remote:
         return
     finac.account_create('hrb1', 'USD', 'hr_bond')
     finac.account_create('lrb1', 'USD', 'lr_bond')
     finac.account_create('emission1', 'USD', 'ebond')
     finac.tr('hrb1', 5000)
     finac.tr('lrb1', 6000)
     finac.tr('emission1', 1000)
     self.assertEqual(
         finac.account_balance(tp=['hr_bond', 'lr_bond', 'ebond']), 10000)
示例#11
0
 def test042_overdraft_and_delete(self):
     finac.account_create('TEST42.TEST', 'EUR', max_overdraft=100)
     finac.transaction_create('TEST42.TEST', 10)
     tid = finac.transaction_create('TEST42.TEST',
                                    -100,
                                    mark_completed=False)
     finac.transaction_delete(tid)
     tid = finac.transaction_create('TEST42.TEST',
                                    -100,
                                    mark_completed=False)
     finac.transaction_delete(tid)
     self.assertEqual(finac.account_balance('TEST42.TEST'), 10)
示例#12
0
 def test003_create_transaction(self):
     result.transaction1_id = finac.transaction_create(
         'test.test',
         100,
         'test',
         'Test balance import',
         mark_completed=False)
     self.assertEqual(finac.account_balance('TEST.TEST'), 0)
     statement = list(
         finac.account_statement('TEST.TEST', '2019-01-01', pending=False))
     self.assertEqual(len(statement), 0)
     statement = list(
         finac.account_statement('test.test', '2019-01-01', pending=True))
     self.assertEqual(len(statement), 1)
示例#13
0
    def test040_overdraft(self):

        # allow overdraft
        finac.account_create('TEST3.TEST',
                             'eur',
                             'current',
                             'Test account',
                             max_overdraft=900)
        finac.transaction_create('TEST3.TEST', 100)
        finac.transaction_move('TEST2.TEST', 'TEST3.TEST', '1,000.00')
        self.assertEqual(finac.account_balance('TEST3.TEST'), -900)

        # forbid overdraft
        finac.account_create('TEST4.TEST',
                             'eur',
                             'current',
                             'Test account',
                             max_overdraft=200)
        finac.transaction_create('TEST3.TEST', 1200)
        try:
            finac.transaction_move('TEST2.TEST', 'TEST3.TEST', 2000)
            raise RuntimeError('OverdraftError not raised')
        except finac.OverdraftError:
            self.assertEqual(finac.account_balance('TEST3.TEST'), 300)
示例#14
0
 def test070_test_targets_and_tags(self):
     finac.account_create('TT1', 'EUR', tp='credit')
     finac.account_create('TT2', 'EUR', tp='saving')
     finac.transaction_create('TT1', 1000)
     finac.transaction_create('TT2', 1000)
     self.assertEqual(finac.account_balance('TT1'), 1000)
     self.assertEqual(finac.account_balance('TT2'), 1000)
     finac.transaction_create('TT1', target=1500)
     finac.transaction_create('TT2', target=800)
     self.assertEqual(finac.account_balance('TT1'), 1500)
     self.assertEqual(finac.account_balance('TT2'), 800)
     finac.transaction_move('TT1', 'TT2', target_ct=700, tag='loans')
     self.assertEqual(finac.account_balance('TT1'), 1600)
     self.assertEqual(finac.account_balance('TT2'), 700)
     finac.transaction_move('TT2', 'TT1', target_dt=2000, tag='loans')
     self.assertEqual(finac.account_balance('TT1'), 300)
     self.assertEqual(finac.account_balance('TT2'), 2000)
     self.assertEqual(
         len(list(finac.account_statement('TT1', tag='lo;an"s'))), 2)
     print()
     finac.ls('TT2')
     print()
示例#15
0
 def test005_transaction_move(self):
     result.transaction2_id = finac.transaction_move(
         'TEST2.TEST', 'TEST.TEST', 25, 'test', 'Test move')
     self.assertEqual(finac.account_balance('TEST.TEST'), 75)
     self.assertEqual(finac.account_balance('TEST2.TEST'), 25)
示例#16
0
 def test004_transaction_complete(self):
     finac.transaction_complete(result.transaction1_id)
     self.assertEqual(finac.account_balance('test.test'), 100)
     statement = list(
         finac.account_statement('test.test', '2019-01-01', pending=True))
示例#17
0
 def test701_passive_tr_debit(self):
     finac.tr('passive1', 100)
     self.assertEqual(finac.account_balance('passive1'), 100)
示例#18
0
 def test702_passive_tr_credit(self):
     finac.tr('passive1', -80)
     self.assertEqual(finac.account_balance('passive1'), 20)
示例#19
0
 def test755_passive_mv_taget_ct_to_active(self):
     finac.mv(dt='active.supplier', ct='pass.supplier', target_ct=70)
     self.assertEqual(finac.account_balance('pass.supplier'), 70)
     self.assertEqual(finac.account_balance('active.supplier'), 61)
示例#20
0
 def test754_passive_mv_taget_dt_to_active(self):
     finac.mv(dt='active.supplier', ct='pass.supplier', target_dt=40)
     self.assertEqual(finac.account_balance('pass.supplier'), 50.91)
     self.assertEqual(finac.account_balance('active.supplier'), 40)
示例#21
0
 def test705_target_dt_from_active(self):
     self.set_balance('active1', 100)
     self.set_balance('passive1', 10)
     finac.mv(dt='passive1', ct='active1', target_dt=0)
     self.assertEqual(finac.account_balance('passive1'), 0)
     self.assertEqual(finac.account_balance('active1'), 90)
示例#22
0
 def test732_mv_btw_passive_target_ct_crosscur(self):
     finac.mv(dt='pass.finagent', ct='pass.supplier', target_ct=60)
     self.assertEqual(finac.account_balance('pass.supplier'), 60)
     self.assertEqual(finac.account_balance('pass.finagent'), 544)
示例#23
0
 def test703_passive_mv_from_active(self):
     self.set_balance('active1', 100)
     self.set_balance('passive1', 10)
     finac.mv(dt='passive1', ct='active1', amount=10)
     self.assertEqual(finac.account_balance('passive1'), 0)
     self.assertEqual(finac.account_balance('active1'), 90)
示例#24
0
 def test722_mv_target_ct_between_passive(self):
     self.set_balance('passive1', 100)
     self.set_balance('passive3', 100)
     finac.mv(dt='passive3', ct='passive1', target_ct=80)
     self.assertEqual(finac.account_balance('passive3'), 120)
     self.assertEqual(finac.account_balance('passive1'), 80)
示例#25
0
 def test721_mv_target_dt_between_passive(self):
     self.set_balance('passive1', 100)
     self.set_balance('passive3', 100)
     finac.mv(dt='passive3', ct='passive1', target_dt=140)
     self.assertEqual(finac.account_balance('passive3'), 140)
     self.assertEqual(finac.account_balance('passive1'), 60)
示例#26
0
 def test720_mv_between_passive(self):
     self.set_balance('passive1', 100)
     self.set_balance('passive3', 100)
     finac.mv(dt='passive3', ct='passive1', amount=30)
     self.assertEqual(finac.account_balance('passive1'), 70)
     self.assertEqual(finac.account_balance('passive3'), 130)
示例#27
0
 def test704_passive_mv_to_active(self):
     self.set_balance('active1', 100)
     self.set_balance('passive1', 10)
     finac.mv(dt='active1', ct='passive1', amount=10)
     self.assertEqual(finac.account_balance('passive1'), 20)
     self.assertEqual(finac.account_balance('active1'), 110)
示例#28
0
 def test752_passive_mv_taget_ct_from_active(self):
     finac.account_create('active.supplier', 'usd')
     self.set_balance('active.supplier', 50)
     finac.mv(dt='pass.supplier', ct='active.supplier', target_ct=40)
     self.assertEqual(finac.account_balance('pass.supplier'), 50.91)
     self.assertEqual(finac.account_balance('active.supplier'), 40)
示例#29
0
 def _test_balances():
     self.assertEqual(finac.account_balance('testa1'), 28000)
     self.assertEqual(finac.account_balance('testa2'), 4000)
     self.assertEqual(finac.account_balance('testa3'), -6000)
     self.assertEqual(finac.account_balance('testap1'), 6000)
示例#30
0
 def test706_target_dt_to_active(self):
     self.set_balance('active1', 100)
     self.set_balance('passive1', 10)
     finac.mv(dt='active1', ct='passive1', target_dt=110)
     self.assertEqual(finac.account_balance('passive1'), 20)
     self.assertEqual(finac.account_balance('active1'), 110)