コード例 #1
0
ファイル: queries.py プロジェクト: ericmoritz/txtbudget
def until(csv_lines, dtend, dtstart=None):
    def result_key(ti):
        return (ti.date, ti.name)

    return sorted((TransactionItem(*x) for si in schedule_parser_gen(csv_lines)
                   for x in si.until(dtend, dtstart=dtstart)),
                  key=result_key)

    gen = schedule_parser_gen(csv_lines)
    gen = (si.until(dtend, dtstart=dtstart) for si in gen)
    gen = itertools.chain(*gen)
    gen = (TransactionItem(*x) for x in gen)
    return sorted(gen, key=result_key)
コード例 #2
0
    def test_comment(self):
        fixture = [u"# This is a comment",
                   u" # This is one as well",
                   u"",
                   u"   ",
                   u"Name1, 20.10, 04/13/2010, # Comment"]

        result = list(budget.schedule_parser_gen(fixture))
        expect = [budget.ScheduleItem(u"Name1",
                                      20.10,
                                      datetime(2010,4,13),
                                      u"")]
        self.assertEqual(expect, result)
コード例 #3
0
    def test_valid_line(self):
        fixture = [u"Name1, 20.10, 04/13/2010, ",
                   u"Name2, 21.01, 04/14/2010, 2w",]
        result = list(budget.schedule_parser_gen(fixture))
        expect = [budget.ScheduleItem(u"Name1",
                                      20.10,
                                      datetime(2010,4,13),
                                      u""),
                  budget.ScheduleItem(u"Name2",
                                      21.01,
                                      datetime(2010,4,14),
                                      u"2w"),]

        result = map(lambda x,y: cmp(x,y) == 0, result, expect)

        self.assertTrue(all(result), result)