Beispiel #1
0
    def test_balance(self):
        acc = fakeAccount()
        nEv = duckbill.newEvent

        assert acc.balance() == 0
        acc.events << nEv("charge", posted="1/1/2001", amount=5)
        assert acc.balance() == 5
        assert acc.balance(Date("12/31/2000")) == 0
        assert acc.balance(Date("1/1/2001")) == 0
        assert acc.balance(Date("1/2/2001")) == 5
Beispiel #2
0
 def test_whenLastStatementPosted(self):
     """
     This should find the statement with the latest 'posted' time.
     """
     acc = fakeAccount()
     acc.opened = Date("1/1/2001")
     assert acc.whenLastStatementPosted() == Date("1/1/2001")
     assert len(acc.events) == 0
     acc.events << duckbill.newEvent("statement", posted="2/1/2001")
     acc.events << duckbill.newEvent("statement", posted="5/1/2001")
     acc.events << duckbill.newEvent("statement", posted="3/1/2001")
     acc.events << duckbill.newEvent("statement", posted="1/1/2001")
     assert acc.whenLastStatementPosted() == Date("5/1/2001")
Beispiel #3
0
    def test_eventsBetween(self):
        acc = fakeAccount()
        then = Date("1/1/2001")
        now = Date("5/1/2001") # not really :)

        # start with nothing.
        assert len(acc.eventsBetween(then, now)) == 0

        # include the front date:        
        acc.events << duckbill.newEvent("payment", posted="1/1/2001")
        assert len(acc.eventsBetween(then, now)) == 1, "start"

        # exclude the end date:
        acc.events << duckbill.newEvent("note", posted="5/1/2001")
        assert len(acc.eventsBetween(then, now)) == 1, "end"

        # include the middle:
        acc.events << duckbill.newEvent("charge", posted="2/1/2001")
        acc.events << duckbill.newEvent("credit", posted="4/1/2001")
        l = len(acc.eventsBetween(then, now))
        assert l == 3, \
                "middle should have 3 events, actually has %d" % l