def should_filter_history_for_breaks(self): task = TaskWarrior() task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 0, 0)) task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 1, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 2, 0)) task.start(now=datetime.datetime(2020, 12, 31, 8, 3, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 4, 0)) task.start('bar', now=datetime.datetime(2020, 12, 31, 8, 5, 0)) self.assertEqual([(_.title, _.datetime.time()) for _ in task.filter_history( only_breaks=True, )], [ (None, datetime.time(8, 2)), ('foo', datetime.time(8, 3)), ]) task = TaskWarrior() task.config.taskfile.write_bytes(b'') task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 0, 0)) task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 1, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 2, 0)) task.start(now=datetime.datetime(2020, 12, 31, 8, 3, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 4, 0)) self.assertEqual([(_.title, _.datetime.time()) for _ in task.filter_history( only_breaks=True, )], [ (None, datetime.time(8, 2)), ('foo', datetime.time(8, 3)), ])
def should_filter_task_history_by_datetime(self): task = TaskWarrior() task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 0, 0)) task.start('bar', now=datetime.datetime(2020, 12, 31, 8, 20, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 45, 0)) task.start('baz', now=datetime.datetime(2020, 12, 31, 9, 40, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 10, 20, 0)) task.start(now=datetime.datetime(2020, 12, 31, 12, 1, 0)) self.assertEqual([(_.title, _.datetime.time()) for _ in task.filter_history( start_datetime=datetime.datetime(2020, 12, 31, 8, 10, 0), stop_datetime=datetime.datetime(2020, 12, 31, 11, 10, 0), )], [ ('bar', datetime.time(8, 20)), (None, datetime.time(8, 45)), ('baz', datetime.time(9, 40)), (None, datetime.time(10, 20)), ])
def should_filter_out_duplicated_stop_resume_events(self): task = TaskWarrior() task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 0, 0)) task.start('foo', now=datetime.datetime(2020, 12, 31, 8, 1, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 2, 0)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 2, 5)) task.start(now=datetime.datetime(2020, 12, 31, 8, 3, 0)) task.start(now=datetime.datetime(2020, 12, 31, 8, 3, 5)) task.stop(now=datetime.datetime(2020, 12, 31, 8, 4, 0)) task.start('bar', now=datetime.datetime(2020, 12, 31, 8, 5, 0)) task.start('bar', now=datetime.datetime(2020, 12, 31, 8, 5, 3)) self.assertEqual([(_.title, _.datetime.time()) for _ in task.filter_history( )], [ ('foo', datetime.time(8, 0)), ('foo', datetime.time(8, 1)), (None, datetime.time(8, 2)), ('foo', datetime.time(8, 3)), ('foo', datetime.time(8, 3, 5)), (None, datetime.time(8, 4)), ('bar', datetime.time(8, 5)), ('bar', datetime.time(8, 5, 3)), ])