def test_reset(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("InitialTask", "current", "home", "2020-05-11") initial_task = tasks.get_task_by_name("InitialTask") tasks.reset(initial_task.unique_id) self.assertEqual(initial_task.due_date.date_string, "2020-05-11") modified_task = tasks.get_task_by_name("InitialTask") current_date_string = Today().to_date_string() self.assertTrue( modified_task.due_date.date_string == current_date_string)
def test_task_is_complete(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("Simple Task", "current", "home", "today") task_list = tasks.get_object_list() self.assertTrue(len(task_list) == 1) task1 = task_list[0] self.assertTrue(task1.due_date.date_string == Today().to_date_string()) task1.complete() self.assertTrue(task1.is_completed())
def test_complete_task(self): due_date_list = DateGenerator().get_due_dates("every sa") tasks = Tasks(self.db) tasks.clear_objects() tasks.add("Repetitive task", "current", "home", "every sa") task_list = tasks.get_object_list() self.assertTrue(len(due_date_list) == len(task_list)) for task in task_list: task.complete() for task in task_list: self.assertTrue(task.is_completed())
class TestSnapshots(unittest.TestCase): def setUp(self) -> None: self.db = JsonFileDatabase() self.db.initialize(Task()) self.db.clear() self.tasks = Tasks(self.db) def tearDown(self) -> None: self.db.clear() def test_count_all(self): self.tasks.add("task1", "label1", "project1", "today") t1 = self.tasks.get_task_by_name("task1") self.tasks.complete(t1.unique_id) self.tasks.add("task2", "label1", "project1", "today") t2 = self.tasks.get_task_by_name("task2") self.tasks.delete(t2.unique_id) self.tasks.add("task3", "label1", "project1", "today") self.tasks.add("task4", "label1", "project1", "today") snapshots = Snapshots(self.tasks) snapshots.count_all_tasks() summary, snapshot_list = snapshots.get_snapshot() self.assertIsNotNone(summary) self.assertTrue(summary.count == 4) self.assertTrue(summary.deleted == 1) self.assertTrue(summary.incomplete == 2) self.assertTrue(summary.completed == 1) def test_count_by_due_date_range(self): self.tasks.add("task1", "label1", "project1", "2021-07-14") self.tasks.add("task2", "label1", "project1", "2021-09-01") self.tasks.add("task3", "label1", "project1", "2021-09-01") self.tasks.add("task4", "label1", "project1", "2021-11-01") snapshots = Snapshots(self.tasks) snapshots.count_tasks_by_due_date_range("2021-07-13", "2021-11-02") summary, snapshot_list = snapshots.get_snapshot() self.assertIsNotNone(summary) self.assertEqual(summary.count, 4) self.assertEqual(summary.completed, 0) self.assertEqual(summary.incomplete, 4) self.assertEqual(summary.deleted, 0) self.assertTrue(len(snapshot_list) == 3) def test_count_project(self): self.tasks.add("task1", "label1", "project1", "today") self.tasks.add("task2", "label1", "project2", "today") self.tasks.add("task3", "label1", "project2", "today") self.tasks.add("task4", "label1", "project2", "today") snapshots = Snapshots(self.tasks) snapshots.count_tasks_by_project("project2") summary, snapshot_list = snapshots.get_snapshot() self.assertIsNotNone(summary) self.assertEqual(summary.count, 3) self.assertEqual(summary.completed, 0) self.assertEqual(summary.incomplete, 3) self.assertEqual(summary.deleted, 0) self.assertTrue(len(snapshot_list) == 1) def test_invalid_operation(self): snapshots = Snapshots(self.tasks) summary, snapshot_list = snapshots.get_snapshot() self.assertIsNotNone(summary) self.assertEqual(summary.count, 0) self.assertEqual(summary.completed, 0) self.assertEqual(summary.incomplete, 0) self.assertEqual(summary.deleted, 0) self.assertTrue(len(snapshot_list) == 0)
def setUp(self) -> None: self.db = JsonFileDatabase() self.db.initialize(Task()) self.db.clear() self.tasks = Tasks(self.db)
def get_tasks_model(self): return Tasks(self.get_database())
def setUp(self): self.db = JsonFileDatabase() self.db.initialize(Task()) self.tasks = Tasks(self.db) self.importer = CsvFileImporter(self.tasks)
def test_reschedule_tasks(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("task1", "label1", "project1", "2021-10-22") task1 = tasks.get_task_by_name("task1") self.assertIsNotNone(task1) # Deleted tasks should not be rescheduled tasks.add("task2", "label2", "project2", "2021-10-22") task2 = tasks.get_task_by_name("task2") self.assertIsNotNone(task2) tasks.delete(task2.unique_id) # Completed tasks should not be rescheduled tasks.add("task3", "label3", "project3", "2021-10-22") task3 = tasks.get_task_by_name("task3") self.assertIsNotNone(task3) tasks.complete(task3.unique_id) today = Today() tasks.reschedule(today) task_list = tasks.get_tasks_by_date(today.to_date_string()) self.assertTrue(len(task_list) == 1) rescheduled_task = task_list[0] self.assertEqual(rescheduled_task.text, "task1") self.assertEqual(rescheduled_task.label, "label1") self.assertEqual(rescheduled_task.project, "project1")
def setUp(self): self.vars = CommonVariables() self.db = JsonFileDatabase() self.db.initialize(Task()) self.tasks = Tasks(self.db) self.task1 = Task("Task1") self.task1.label = "waiting" self.task1.date_expression = "may 2" self.task1.external_id = 1 self.tasks.append(self.task1) self.task2 = Task("Task2") self.task2.label = "computer" self.task2.date_expression = "may 3" self.tasks.append(self.task2) self.task3 = Task("Task3") self.task3.label = "office" self.task3.date_expression = "may 4" self.tasks.append(self.task3) self.task4 = Task("Task4") self.task4.label = "waiting" self.task4.date_expression = "may 5" self.tasks.append(self.task4) self.task5 = Task("Task5") self.task5.label = "office" self.task5.date_expression = "may 6" self.tasks.append(self.task5) self.task6 = Task("Task6") self.task6.label = "call" self.task6.date_expression = "may 7" self.tasks.append(self.task6) self.task7 = Task("Task7") self.task7.label = "computer" self.task7.date_expression = "may 8" self.tasks.append(self.task7) self.task8 = Task("Task8") self.task8.label = "call" self.task8.date_expression = "may 9" self.tasks.append(self.task8) self.task9 = Task("Task9") self.task9.label = "office" self.task9.date_expression = "may 10" self.tasks.append(self.task9) self.task10 = Task("Task10") self.task10.label = "waiting" self.task10.date_expression = "may 11" self.tasks.append(self.task10) self.future_task = Task("Future Task") future_datetime = datetime.now() + timedelta(days=1) date_string = future_datetime.strftime(self.vars.date_format) self.future_task.due_date = DueDate(date_string) self.tasks.append(self.future_task)
class TestTasks(unittest.TestCase): def setUp(self): self.vars = CommonVariables() self.db = JsonFileDatabase() self.db.initialize(Task()) self.tasks = Tasks(self.db) self.task1 = Task("Task1") self.task1.label = "waiting" self.task1.date_expression = "may 2" self.task1.external_id = 1 self.tasks.append(self.task1) self.task2 = Task("Task2") self.task2.label = "computer" self.task2.date_expression = "may 3" self.tasks.append(self.task2) self.task3 = Task("Task3") self.task3.label = "office" self.task3.date_expression = "may 4" self.tasks.append(self.task3) self.task4 = Task("Task4") self.task4.label = "waiting" self.task4.date_expression = "may 5" self.tasks.append(self.task4) self.task5 = Task("Task5") self.task5.label = "office" self.task5.date_expression = "may 6" self.tasks.append(self.task5) self.task6 = Task("Task6") self.task6.label = "call" self.task6.date_expression = "may 7" self.tasks.append(self.task6) self.task7 = Task("Task7") self.task7.label = "computer" self.task7.date_expression = "may 8" self.tasks.append(self.task7) self.task8 = Task("Task8") self.task8.label = "call" self.task8.date_expression = "may 9" self.tasks.append(self.task8) self.task9 = Task("Task9") self.task9.label = "office" self.task9.date_expression = "may 10" self.tasks.append(self.task9) self.task10 = Task("Task10") self.task10.label = "waiting" self.task10.date_expression = "may 11" self.tasks.append(self.task10) self.future_task = Task("Future Task") future_datetime = datetime.now() + timedelta(days=1) date_string = future_datetime.strftime(self.vars.date_format) self.future_task.due_date = DueDate(date_string) self.tasks.append(self.future_task) def tearDown(self): self.db.clear() def test_get_task(self): task = self.tasks.get_task_by_index(1) self.assertTrue(task.index == 1) def test_add_task(self): task = Task("Task11") self.tasks.append(task) task_list = self.tasks.get_object_list() print(f"test_add_task: len {len(task_list)}") self.assertTrue(len(task_list) == 12) def test_deleted_task(self): self.tasks.delete(self.task1.unique_id) task_list = self.tasks.get_object_list() self.assertTrue(len(task_list) == 11) task = task_list[0] self.assertEqual(task.unique_id, self.task1.unique_id) self.assertTrue(task.deleted) def test_complete_task(self): due_date_list = DateGenerator().get_due_dates("every sa") tasks = Tasks(self.db) tasks.clear_objects() tasks.add("Repetitive task", "current", "home", "every sa") task_list = tasks.get_object_list() self.assertTrue(len(due_date_list) == len(task_list)) for task in task_list: task.complete() for task in task_list: self.assertTrue(task.is_completed()) def test_task_is_complete(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("Simple Task", "current", "home", "today") task_list = tasks.get_object_list() self.assertTrue(len(task_list) == 1) task1 = task_list[0] self.assertTrue(task1.due_date.date_string == Today().to_date_string()) task1.complete() self.assertTrue(task1.is_completed()) def test_sorting_by_label(self): task_list = self.tasks.get_tasks_by_label("call") self.assertTrue(type(task_list), list) self.assertTrue(len(task_list) == 2) first_task = task_list[0] self.assertTrue(first_task.label == "call") def test_get_unique_labels(self): unique_label_list = self.tasks.get_label_list() self.assertListEqual( unique_label_list, ['call', 'computer', 'current', 'office', 'waiting']) def test_get_list_by_type(self): returned_result = self.tasks.get_list_by_type( "label", "call", self.tasks.get_object_list()) self.assertTrue(len(returned_result) == 2) def test_get_list_by_date_expression(self): task_list = self.tasks.get_tasks_by_date("tomorrow") self.assertTrue(len(task_list) == 1) task = task_list[0] self.assertTrue(task.text == "Future Task") def test_replace(self): task = self.tasks.get_task_by_name("Task1") task.deleted = True existing_task = self.tasks.replace(self.task1, task) self.assertTrue(existing_task.deleted) self.assertEqual(task.text, "Task1") def test_reset(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("InitialTask", "current", "home", "2020-05-11") initial_task = tasks.get_task_by_name("InitialTask") tasks.reset(initial_task.unique_id) self.assertEqual(initial_task.due_date.date_string, "2020-05-11") modified_task = tasks.get_task_by_name("InitialTask") current_date_string = Today().to_date_string() self.assertTrue( modified_task.due_date.date_string == current_date_string) def test_reschedule_tasks(self): tasks = Tasks(self.db) tasks.clear_objects() tasks.add("task1", "label1", "project1", "2021-10-22") task1 = tasks.get_task_by_name("task1") self.assertIsNotNone(task1) # Deleted tasks should not be rescheduled tasks.add("task2", "label2", "project2", "2021-10-22") task2 = tasks.get_task_by_name("task2") self.assertIsNotNone(task2) tasks.delete(task2.unique_id) # Completed tasks should not be rescheduled tasks.add("task3", "label3", "project3", "2021-10-22") task3 = tasks.get_task_by_name("task3") self.assertIsNotNone(task3) tasks.complete(task3.unique_id) today = Today() tasks.reschedule(today) task_list = tasks.get_tasks_by_date(today.to_date_string()) self.assertTrue(len(task_list) == 1) rescheduled_task = task_list[0] self.assertEqual(rescheduled_task.text, "task1") self.assertEqual(rescheduled_task.label, "label1") self.assertEqual(rescheduled_task.project, "project1")