# This is the template for the TaskManager test cases for mutation testing. # Please add your tests below. import pytest from taskManager.taskManager import TaskManager from taskManager.task import Task import os #TESTS FOR task.py @pytest.fixture def sample_task(): instance = Task("Maks Taks", 1, "2024-03-17") return instance def test_task_init(sample_task): assert sample_task.task_text == "Maks Taks" assert sample_task.priority == 1 assert sample_task.due_date == "2024-03-17" assert sample_task.completed == False def test_mark_completed(sample_task): sample_task.mark_completed() assert sample_task.completed == True def test_to_dict(sample_task): expected_dict = { "task_text": "Maks Taks", "priority": 1, "due_date": "2024-03-17", "completed": False } assert sample_task.to_dict() == expected_dict def test_from_dict(): task_data = { "task_text": "Maks Taks", "priority": 1, "due_date": "2024-03-17", "completed": False } task_obj = Task.from_dict(task_data) assert task_obj.task_text == "Maks Taks" assert task_obj.priority == 1 assert task_obj.due_date == "2024-03-17" assert task_obj.completed == False #TESTS FOR taskManager.py @pytest.fixture(scope="function") def sample_task_manager(): if os.path.exists('./tasks.json'): os.remove('./tasks.json') taskManager = TaskManager() if taskManager.tasks is None: taskManager.load_tasks() return taskManager @pytest.mark.parametrize("task_text, priority, due_date", [ ("Maks Taks 1", 1, "2024-03-17"), ("Maks Taks 2", 2, "2024-03-18") ]) def test_task_operations(sample_task_manager, task_text, priority, due_date, capsys): if sample_task_manager.tasks is None: sample_task_manager.load_tasks() sample_task_manager.add_task(task_text, priority, due_date) assert len(sample_task_manager.tasks) == 1 index_to_delete = 1 sample_task_manager.remove_task(index_to_delete) captured = capsys.readouterr() if index_to_delete < len(sample_task_manager.tasks): assert f"Removed task: {task_text}" in captured.out.strip() assert len(sample_task_manager.tasks) == 0 else: assert "Invalid task number!" in captured.out.strip() sample_task_manager.add_task(task_text, priority, due_date) index_to_update = 1 sample_task_manager.complete_task(index_to_update) captured = capsys.readouterr() if index_to_update < len(sample_task_manager.tasks): assert "Task marked as completed!" in captured.out.strip() assert sample_task_manager.tasks[index_to_update].completed == True else: assert "Invalid task number!" in captured.out.strip() def test_list_tasks(sample_task_manager, capsys): if sample_task_manager.tasks is None: sample_task_manager.load_tasks() sample_task_manager.add_task("Maks Taks 1", 1, "2024-03-17") sample_task_manager.add_task("Maks Taks 2", 2, "2024-03-18") sample_task_manager.list_tasks() captured = capsys.readouterr() assert "Task List:" in captured.out assert "Maks Taks 1" in captured.out assert "Maks Taks 2" in captured.out def test_save_and_load_tasks(sample_task_manager): if sample_task_manager.tasks is None: sample_task_manager.load_tasks() sample_task_manager.add_task("Maks Taks", 1, "2024-03-17") sample_task_manager.save_tasks() new_task_manager = TaskManager() if new_task_manager.tasks is None: new_task_manager.load_tasks() new_task_manager.load_tasks() assert len(new_task_manager.tasks) == 1 assert new_task_manager.tasks[0].task_text == "Maks Taks"