diff --git a/src/commands/CmdSummary.cpp b/src/commands/CmdSummary.cpp index 2593e649..c47e2d36 100644 --- a/src/commands/CmdSummary.cpp +++ b/src/commands/CmdSummary.cpp @@ -116,6 +116,11 @@ int CmdSummary ( auto days_start = filter.is_started() ? filter.start : tracked.front ().start; auto days_end = filter.is_ended() ? filter.end : tracked.back ().end; + if (days_end == 0) + { + days_end = Datetime (); + } + for (Datetime day = days_start; day < days_end; day++) { auto day_range = getFullDay (day); diff --git a/test/summary.t b/test/summary.t index 99865540..ccbd1862 100755 --- a/test/summary.t +++ b/test/summary.t @@ -63,6 +63,25 @@ Wk ?Date Day ID Tags ?Start ?End Time Total W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2}( W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2})? +[ ]+1:00:0[01] +""") + + def test_with_closed_interval_and_all_hint(self): + """Summary should print closed interval with :all hint""" + now = datetime.now() + yesterday = now - timedelta(days=1) + tomorrow = now + timedelta(days=1) + + self.t("track for 1h") + + code, out, err = self.t("summary :ids :all".format(yesterday, tomorrow)) + + self.assertRegex(out, """ +Wk ?Date Day ID Tags ?Start ?End Time Total +[ -]+ +W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2}( +W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2})? + [ ]+1:00:0[01] """) @@ -82,6 +101,25 @@ Wk ?Date Day ID Tags ?Start End Time Total W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2}[ ]+- \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2}( W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2}[ ]+- \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2})? +[ ]+1:00:0[01] +""") + + def test_with_open_interval_and_all_hint(self): + """Summary should print open interval with :all hint""" + now = datetime.now() + yesterday = now - timedelta(days=1) + tomorrow = now + timedelta(days=1) + + self.t("start 1h ago") + + code, out, err = self.t("summary :ids :all".format(yesterday, tomorrow)) + + self.assertRegex(out, """ +Wk ?Date Day ID Tags ?Start End Time Total +[ -]+ +W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2}[ ]+- \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2}( +W\d{1,2} \d{4}-\d{2}-\d{2} .{3} @1 ?\d{1,2}:\d{2}:\d{2}[ ]+- \d{1,2}:\d{2}:\d{2} \d{1,2}:\d{2}:\d{2})? + [ ]+1:00:0[01] """)