コード例 #1
0
 def setUp(self):
     self.m1 = Money(1.25)
     self.m2 = Money(1.26)
     self.m3 = Money(1.25)
     self.f1 = 1.25
     self.f2 = 1.26
     self.f3 = 1.25
     self.s1 = '1.25'
     self.s2 = '1.26'
     self.s3 = '1.25'
コード例 #2
0
 def amtOn(self, trans_date):
     date = self.start
     while (True):
         if date not in self.skip:
             if date == trans_date:
                 return self.amount
             if date > trans_date:
                 return Money(0)
             if self.end and trans_date > self.end:
                 return Money(0)
             if self.frequency == Transaction.ONCE:
                 return Money(0)
         date = self._step_to_next_date(date)
コード例 #3
0
 def test_contructor_string_balance(self):
     sd = date.today()
     sb = '100.00'
     ts = TransactionStore()
     cf = CashFlow(sd, sb, ts)
     self.assertIsInstance(cf.start_date, date)
     self.assertEqual(cf.start_date, sd)
     self.assertIsInstance(cf.start_balance, Money)
     self.assertEqual(cf.start_balance, Money(sb))
     self.assertIsInstance(cf.transaction_store, TransactionStore)
     self.assertEqual(len(cf.transaction_store.getTransactions()), 0)
     self.assertIsInstance(cf.current_date, date)
     self.assertEqual(cf.current_date, sd)
     self.assertIsInstance(cf.current_balance, Money)
     self.assertEqual(cf.current_balance, Money(sb))
コード例 #4
0
 def __init__(self,
              start=date.today(),
              original_start=None,
              end=None,
              description="<Description>",
              amount=0.00,
              frequency=None,
              skip=None,
              scheduled=False,
              cleared=False):
     self.start = start
     if original_start is None:
         original_start = self.start
     self.original_start = original_start
     self.end = end
     self.description = description
     self.amount = Money(amount)
     if frequency is None:
         frequency = Transaction.ONCE
     self.frequency = frequency
     if skip is None:
         skip = set()
     self.skip = skip
     self.scheduled = scheduled
     self.cleared = cleared
コード例 #5
0
 def test_money_neq_string(self):
     m1 = Money(1.25)
     m2 = '1.26'
     self.assertNotEqual(m1, m2)
コード例 #6
0
 def test_subtract_money_and_string(self):
     m1 = Money(2.51)
     m2 = '1.26'
     m3 = m1 - m2
     self.assertIsInstance(m3, Money)
     self.assertEqual(repr(m3), "1.25")
コード例 #7
0
 def test_add_money_and_string(self):
     m1 = Money(1.25)
     m2 = '1.26'
     m3 = m1 + m2
     self.assertIsInstance(m3, Money)
     self.assertEqual(repr(m3), "2.51")
コード例 #8
0
 def test_str_two_decimals(self):
     m = Money('1.23')
     self.assertEqual(str(m), "1.23")
コード例 #9
0
 def test_str_no_decimals(self):
     m = Money('1')
     self.assertEqual(str(m), "1.00")
コード例 #10
0
 def test_recurrence_with_skip(self):
     self.t.skip.add(self.ny)
     self.assertRecurrence(self.t, self.sd, self.t.amount, self.ny_days,
                           self.ny, Money(0), self.nyp1_days, self.yan_days,
                           self.yan, self.t.amount)
コード例 #11
0
 def test_recurrence_with_end(self):
     self.t.end = self.ny + relativedelta(days=10)
     self.assertRecurrence(self.t, self.sd, self.t.amount, self.ny_days,
                           self.ny, self.t.amount, self.nyp1_days,
                           self.yan_days, self.yan, Money(0))
コード例 #12
0
 def test_recurrence_with_skip(self):
     self.t.skip.add(self.nq)
     self.assertRecurrence(self.t, self.sd, self.t.amount, self.nq_days,
                           self.nq, Money(0), self.nqp1_days, self.qan_days,
                           self.qan, self.t.amount)
コード例 #13
0
 def test_recurrence_with_skip(self):
     self.t.skip.add(self.nm)
     self.assertRecurrence(self.t, self.sd, self.t.amount, self.nm_days,
                           self.nm, Money(0), self.nmp1_days, self.man_days,
                           self.man, self.t.amount)
コード例 #14
0
 def test_recurrence_with_skip(self):
     self.t.skip.add(self.nbw)
     self.assertRecurrence(self.t,
                           self.sd, self.t.amount, self.nbw_days, self.nbw,
                           Money(0), self.nbwp1_days, self.bwan_days,
                           self.bwan, self.t.amount)
コード例 #15
0
 def test_recurrence_with_end(self):
     self.t.end = self.nbw + timedelta(days=1)
     self.assertRecurrence(self.t, self.sd, self.t.amount, self.nbw_days,
                           self.nbw, self.t.amount, self.nbwp1_days,
                           self.bwan_days, self.bwan, Money(0))
コード例 #16
0
 def test_received_money(self):
     m = Money(Money('1.54'))
     self.assertIsInstance(m, Money)
     self.assertEqual(m.value, Decimal('1.54'))
コード例 #17
0
 def test_start_date_hits(self):
     self.assertEqual(self.t1.amtOn(self.sd), self.t1.amount)
     self.assertEqual(self.t1.amtOn(self.sdp1), Money(0))
コード例 #18
0
 def test_str_one_decimal(self):
     m = Money('1.2')
     self.assertEqual(str(m), "1.20")
コード例 #19
0
 def test_date_after_start_date_hits(self):
     self.assertEqual(self.t2.amtOn(self.sd), Money(0))
     self.assertEqual(self.t2.amtOn(self.sdp1), Money(0))
     self.assertEqual(self.t2.amtOn(self.sdp2), self.t2.amount)
     self.assertEqual(self.t2.amtOn(self.sdp3), Money(0))
コード例 #20
0
 def test_add_money_and_float(self):
     m1 = Money(1.25)
     m2 = 1.26
     m3 = m1 + m2
     self.assertIsInstance(m3, Money)
     self.assertEqual(repr(m3), "2.51")
コード例 #21
0
 def test_update_with_money(self):
     self.t.updateAmount(Money(3.50))
     self.assertEqual(Decimal(repr(self.t.amount)), Decimal(3.50))
コード例 #22
0
 def test_empty_constructor(self):
     m = Money()
     self.assertIsInstance(m, Money)
     self.assertEqual(m.value, Decimal(0.0))
コード例 #23
0
 def test_money_eq_money(self):
     m1 = Money(1.25)
     m2 = Money(1.25)
     self.assertEqual(m1, m2)
コード例 #24
0
 def test_money_neq_money(self):
     m1 = Money(1.25)
     m2 = Money(1.26)
     self.assertNotEqual(m1, m2)
コード例 #25
0
 def test_money_neq_float(self):
     m1 = Money(1.25)
     m2 = 1.26
     self.assertNotEqual(m1, m2)
コード例 #26
0
 def updateAmount(self, amount):
     if type(amount) is not Money:
         amount = Money(amount)
     self.amount = amount
コード例 #27
0
 def __init__(self, start_date, start_balance, transaction_store):
     self.start_date = start_date
     self.start_balance = Money(start_balance)
     self.transaction_store = transaction_store
     self.current_date = start_date
     self.current_balance = Money(start_balance)