def test_show_only_backlog(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "backlog" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 2) self.assertNotEqual(printout[0].find("Backlog"), -1) backlog = printout[0].split("\n") self.assertEqual(len(backlog), 3) # empty line, header, 1 tasks
def test_show_sorted_by_due_date(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "date" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 5) self.assertNotEqual(printout[0].find("!!! Overdue !!"), -1) self.assertNotEqual(printout[1].find("This Week"), -1) self.assertNotEqual(printout[2].find("Next Week"), -1) self.assertNotEqual(printout[3].find("Backlog"), -1)
def test_show_sorted_by_default_today_is_sunday(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 5) self.assertNotEqual(printout[0].find("!!! Overdue !!!"), -1) self.assertNotEqual(printout[1].find("Today"), -1) self.assertNotEqual(printout[2].find("Tomorrow"), -1) self.assertNotEqual(printout[3].find("Next Week"), -1)
def test_show_tasks_from_inactive_projects(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "priority" self.mock_args.show_all_projects = True show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 3) normal_prio = printout[1].split("\n") self.assertEqual(len(normal_prio), 6) # empty line, header, 5 tasks (no done) self.assertNotEqual(printout[1].find('inactive project'), -1)
def test_show_past_done_tasks(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "priority" self.mock_args.show_completed_tasks = True self.mock_args.show_past_tasks = True show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 3) normal_prio = printout[1].split("\n") self.assertEqual(len(normal_prio), 7) # empty line, header, 5 tasks (no inactive proj) self.assertNotEqual(printout[1].find('done and past'), -1)
def test_show_sorted_by_project_with_inactive_project( self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "project" self.mock_args.show_all_projects = True show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 5) self.assertNotEqual(printout[0].find("Active"), -1) self.assertNotEqual(printout[1].find("Inactive"), -1) self.assertNotEqual(printout[2].find("No Task"), -1) self.assertNotEqual(printout[3].find("No Project"), -1) inactive_proj = printout[1].split("\n") self.assertEqual(len(inactive_proj), 3) # empty line, header, 1 task self.assertNotEqual(inactive_proj[2].find("inactive project"), -1)
def test_show_sorted_by_priority(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "priority" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 3) # last one is empty self.assertNotEqual(printout[0].find("high prio one"), -1) self.assertNotEqual(printout[0].find("high prio two"), -1) high_prio = printout[0].split("\n") self.assertEqual(len(high_prio), 4) # empty line, header, two tasks normal_prio = printout[1].split("\n") self.assertEqual( len(normal_prio), 5) # empty line, header, 3 tasks (no done and inactive proj)
def test_show_sorted_by_default(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 6) self.assertNotEqual(printout[0].find("!!! Overdue !!!"), -1) self.assertNotEqual(printout[1].find("Today"), -1) self.assertNotEqual(printout[2].find("Tomorrow"), -1) self.assertNotEqual(printout[3].find("This Week"), -1) self.assertNotEqual(printout[4].find("Next Week"), -1) overdue = printout[0].split("\n") self.assertEqual(len(overdue), 4) # empty line, header, 2 tasks self.assertNotEqual(overdue[2].find('week overdue'), -1) self.assertNotEqual(overdue[3].find('date overdue'), -1) today = printout[1].split("\n") self.assertEqual(len(today), 3) # empty line, header, no task self.assertNotEqual(today[1].find("Sat, 1 Sep 2018"), -1) self.assertNotEqual( today[2].find("--- No tasks for this timeframe ---"), -1) tomorrow = printout[2].split("\n") self.assertEqual(len(tomorrow), 3) # empty line, header, one task self.assertNotEqual(tomorrow[1].find("Sun, 2 Sep 2018"), -1) self.assertNotEqual(tomorrow[2].find("high prio one, date, location"), -1) this_week = printout[3].split("\n") self.assertEqual(len(this_week), 3) # empty line, header, no task self.assertNotEqual(this_week[1].find("Week 35"), -1) self.assertNotEqual( this_week[2].find("--- No tasks for this timeframe ---"), -1) next_week = printout[4].split("\n") self.assertEqual(len(next_week), 3) # empty line, header, one task self.assertNotEqual(next_week[1].find("Week 36, 2018-09-03+"), -1) self.assertNotEqual( next_week[2].find("high prio two, week, no location"), -1)
def test_show_sorted_by_location(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "location" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 3) # 1 location, 1 no location, 1 empty line self.assertNotEqual(printout[0].find("somewhere"), -1) self.assertNotEqual(printout[1].find("No location specified"), -1) location = printout[0].split("\n") self.assertEqual(len(location), 3) # empty line, header, 1 task self.assertNotEqual(location[2].find('location'), -1) no_location = printout[1].split("\n") self.assertEqual(len(no_location), 6) # empty line, header, 4 tasks
def test_show_sorted_by_project(self, mock_tasks, mock_projects, mock_out): mock_tasks.return_value = copy.deepcopy(self.test_tasks) mock_projects.return_value = copy.deepcopy(self.test_projects) self.mock_args.sorting_by = "project" show.show(self.mock_args) printout = mock_out.getvalue().split("\n\n") self.assertEqual(len(printout), 4) self.assertNotEqual(printout[0].find("Active"), -1) self.assertNotEqual(printout[1].find("No Task"), -1) self.assertNotEqual(printout[2].find("No Project"), -1) active_proj = printout[0].split("\n") self.assertEqual(len(active_proj), 3) # empty line, header, 1 task self.assertNotEqual( active_proj[2].find('active project, date overdue'), -1) empty_proj = printout[1].split("\n") self.assertEqual(len(empty_proj), 3) # empty line, header, no task self.assertNotEqual( empty_proj[2].find("--- No tasks for this project ---"), -1) no_proj = printout[2].split("\n") self.assertEqual(len(no_proj), 6) # empty line, header, 4 tasks