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)
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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))
def test701_passive_tr_debit(self): finac.tr('passive1', 100) self.assertEqual(finac.account_balance('passive1'), 100)
def test702_passive_tr_credit(self): finac.tr('passive1', -80) self.assertEqual(finac.account_balance('passive1'), 20)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)