You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.6 KiB
115 lines
3.6 KiB
# 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"
|
|
|