goofish / tests /unit /test_domain_task.py
host1syan's picture
Upload 212 files
5378afe verified
from src.domain.models.task import Task, TaskUpdate
def test_task_can_start_and_stop():
task = Task(
id=1,
task_name="Sony A7M4",
enabled=True,
keyword="sony a7m4",
description="body",
max_pages=2,
personal_only=True,
min_price=None,
max_price=None,
cron=None,
ai_prompt_base_file="prompts/base_prompt.txt",
ai_prompt_criteria_file="prompts/sony_a7m4_criteria.txt",
is_running=False,
)
assert task.can_start() is True
assert task.can_stop() is False
running = task.copy(update={"is_running": True})
assert running.can_start() is False
assert running.can_stop() is True
def test_task_apply_update():
task = Task(
id=1,
task_name="Sony A7M4",
enabled=True,
keyword="sony a7m4",
description="body",
max_pages=2,
personal_only=True,
min_price=None,
max_price=None,
cron=None,
ai_prompt_base_file="prompts/base_prompt.txt",
ai_prompt_criteria_file="prompts/sony_a7m4_criteria.txt",
is_running=False,
)
update = TaskUpdate(enabled=False, max_pages=5)
updated = task.apply_update(update)
assert updated.enabled is False
assert updated.max_pages == 5
assert updated.task_name == task.task_name