Ejemplo n.º 1
0
 def test_simple_transaction(self):
     c = base.data("simple_transaction.dat")
     items = parser.lex_ledger_file_contents(c)
     self.assertEqual(len(items), 3)
     for n, tclass in enumerate([
         parser.TokenWhitespace,
         parser.TokenTransaction,
         parser.TokenWhitespace,
     ]):
         self.assertIsInstance(items[n], tclass)
     transaction = items[1]
     self.assertEqual(transaction.date, datetime.date(2015, 3, 12))
     self.assertEqual(transaction.clearing_date, datetime.date(2015, 3, 15))
     self.assertEqual(transaction.payee, "beer")
     for n, (ac, am) in enumerate([
         ("Accounts:Cash", "-6.00 CHF"),
         ("Expenses:Drinking", "6.00 CHF"),
     ]):
         self.assertEqual(transaction.postings[n].account, ac)
         self.assertEqual(transaction.postings[n].amount, am)
Ejemplo n.º 2
0
 def test_no_end_value(self):
     c = base.data("no_end_value.dat")
     items = parser.lex_ledger_file_contents(c)
     self.assertEqual(len(items), 5)
     for n, tclass in enumerate([
         parser.TokenWhitespace,
         parser.TokenTransaction,
         parser.TokenWhitespace,
         parser.TokenTransaction,
         parser.TokenWhitespace,
     ]):
         self.assertIsInstance(items[n], tclass)
     for transaction in (items[1], items[3]):
         self.assertEqual(transaction.payee, "beer")
         for n, (ac, am) in enumerate([
             ("Accounts:Cash", "-6.00 CHF"),
             ("Expenses:Drinking", ""),
         ]):
             self.assertEqual(transaction.postings[n].account, ac)
             self.assertEqual(transaction.postings[n].amount, am)
Ejemplo n.º 3
0
 def test_with_comments(self):
     c = base.data("with_comments.dat")
     items = parser.lex_ledger_file_contents(c)
     self.assertEqual(len(items), 3)
     for n, tclass in enumerate([
         parser.TokenWhitespace,
         parser.TokenTransaction,
         parser.TokenWhitespace,
     ]):
         self.assertIsInstance(items[n], tclass)
     transaction = items[1]
     self.assertEqual(transaction.date, datetime.date(2011, 12, 25))
     self.assertEqual(transaction.clearing_date, datetime.date(2011, 12, 25))
     self.assertEqual(transaction.payee, "a gift!")
     self.assertEqual(transaction.state, parser.STATE_CLEARED)
     for n, (ac, am) in enumerate([
         ("Assets:Metals", "1 \"silver coin\"    @ $55"),
         ("Income:Gifts", "$        -55"),
     ]):
         self.assertEqual(transaction.postings[n].account, ac)
         self.assertEqual(transaction.postings[n].amount, am)
Ejemplo n.º 4
0
 def test_my_data_file(self):
     try:
         c = base.data("/home/user/.ledger")
     except IOError:
         return
     items = parser.lex_ledger_file_contents(c)