def test_overtime_work_yesterday_overtime_today(self): self.journal.actions[0].dt -= datetime.timedelta(days=1, minutes=36) self.journal.tasks.append( journal.Task(name='test_task', time=15, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(days=1, minutes=36))) self.journal.actions.append( journal.Action(action=journal.TASK_PAUSE, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(days=1, minutes=26))) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=26))) self.journal.actions.append( journal.Action(action=journal.TASK_PAUSE, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=16))) num_overtime, time_overtime = self.journal.count_overtime( datetime.date.today(), 1) self.assertEqual(num_overtime, 1) self.assertEqual(time_overtime, 5 * 60)
def test_adjust_timing_cancel_fail(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=10))) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=2))) self.input_values.append('') # How many self.input_values.append('2') # Which self.input_values.append('3') # By how much self.input_values.append('n') # if you continue self.journal.adjust_timing() self.assertTrue("unable" not in printed.getvalue()) self.assertTrue("cancelled" in printed.getvalue()) self.assertEqual( 8, self.journal.count_time_in_action(journal.TASK_SWITCH, 0) / 60)
def test_adjust_timing_yescurrent_zerodisplaced(self): self.journal.actions[0].dt -= datetime.timedelta(hours=1, minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(hours=1, minutes=10))) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(hours=1, minutes=5))) self.input_values.append('1') self.input_values.append('2') self.input_values.append('1:03:00') self.input_values.append('y') self.journal.adjust_timing() self.assertTrue("Was unable" not in printed.getvalue()) self.assertTrue("invalid" not in printed.getvalue()) self.assertTrue("cancelled" not in printed.getvalue()) self.assertEqual( 68, self.journal.count_time_in_action(journal.TASK_SWITCH, 0) / 60) self.assertEqual(journal.TASK_WALK, self.journal.actions[-1].action)
def test_count_time_in_action_switch_yesprevious_yescurrent_24hours(self): self.journal.actions[0].dt -= datetime.timedelta(days=2, minutes=36) self.journal.tasks.append( journal.Task(name='test_task', time=40, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(days=2, minutes=36))) self.journal.actions.append( journal.Action(action=journal.TASK_PAUSE, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(days=2, minutes=12))) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(days=1, minutes=8))) self.journal.actions.append( journal.Action(action=journal.TASK_PAUSE, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(days=1))) time = self.journal.count_time_in_action( journal.TASK_SWITCH, 0, datetime.date.today() - datetime.timedelta(days=1), None) self.assertEqual(8, time / 60)
def test_adjust_timing_nocurrent_onedisplaced(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=10))) self.journal.actions.append( journal.Action(action=journal.TASK_LUNCH, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=9))) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=2))) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=2))) self.input_values.append('') self.input_values.append('4') self.input_values.append('-5:01') self.input_values.append('y') self.journal.adjust_timing() self.assertTrue("Was unable" not in printed.getvalue()) self.assertTrue("invalid" not in printed.getvalue()) self.assertTrue("cancelled" not in printed.getvalue()) self.assertEqual( 6, int( self.journal.count_time_in_action(journal.TASK_SWITCH, 0) / 60)) self.assertEqual( 1, int( self.journal.count_time_in_action(journal.TASK_LUNCH, -1) / 60)) self.assertEqual( 2, int(self.journal.count_time_in_action(journal.TASK_WALK, -1) / 60)) self.assertEqual(journal.TASK_WALK, self.journal.actions[-1].action) self.assertEqual(journal.TASK_WALK, self.journal.cur_action) self.assertEqual(-1, self.journal.cur_action_key)
def test_list_actions_select_some(self): self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now())) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now())) self.input_values.append('2') self.journal.list_actions() printed_lines = printed.getvalue().strip().split('\n') self.assertEqual(3, len(printed_lines))
def test_count_time_in_action_walk_noprevious_yescurrent_today(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=5))) time = self.journal.count_time_in_action(journal.TASK_WALK, -1) self.assertEqual(5, time / 60)
def test_count_time_in_action_walk_noprevious_nocurrent_today(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_WALK, task_id=-1, dt=datetime.datetime.now() - datetime.timedelta(minutes=5))) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=3))) time = self.journal.count_time_in_action(journal.TASK_WALK, -1) self.assertEqual(2, time / 60)
def test_overtime_no_overtime(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=36) self.journal.tasks.append( journal.Task(name='test_task', time=5, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=4))) num_overtime, time_overtime = self.journal.count_overtime() self.assertEqual(num_overtime, 0) self.assertEqual(time_overtime, 0)
def test_complete_query_yesinans_nobeatestimation(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10, seconds=5) self.journal.tasks.append( journal.Task(name='test_task', time=5, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=10, seconds=5))) self.journal.cur_action = journal.TASK_SWITCH self.journal.cur_action_key = 0 journal.complete_query(self.journal, "y") self.assertTrue("You took 5 minutes" in printed.getvalue()) self.assertTrue(self.journal.tasks[0].completed)
def test_complete_query_emptyans_invalchar(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=10))) self.journal.cur_action = journal.TASK_SWITCH self.journal.cur_action_key = 0 self.input_values.append('Hello World!') journal.complete_query(self.journal, "") self.assertTrue("Operation aborted" in printed.getvalue()) self.assertFalse(self.journal.tasks[0].completed)
def test_complete_query_noinans(self): self.journal.actions[0].dt -= datetime.timedelta(minutes=10) self.journal.tasks.append( journal.Task(name='test_task', time=10, task_type=journal.TASK_WORK_TYPE, completed=False)) self.journal.actions.append( journal.Action(action=journal.TASK_SWITCH, task_id=0, dt=datetime.datetime.now() - datetime.timedelta(minutes=10))) self.journal.cur_action = journal.TASK_SWITCH self.journal.cur_action_key = 0 journal.complete_query(self.journal, "n") self.assertFalse( "beat your estimation by 9 minutes" in printed.getvalue()) self.assertFalse(self.journal.tasks[0].completed)