Set upper limit for summary table to now if both filter and latest interval are open

- Closes #378

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
This commit is contained in:
Thomas Lauf 2020-08-29 18:50:18 +02:00
parent b9d3b284fa
commit 86024b1a41
2 changed files with 43 additions and 0 deletions

View file

@ -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);

View file

@ -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]
""")