feat: retention days limit and clone name templating and useful descr.
This commit is contained in:
@ -2,7 +2,11 @@ from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from garmin_coach_clone.config import DEFAULT_FIXED_TIMES, load_settings
|
||||
from garmin_coach_clone.config import (
|
||||
DEFAULT_CLONE_NAME_TEMPLATE,
|
||||
DEFAULT_FIXED_TIMES,
|
||||
load_settings,
|
||||
)
|
||||
from garmin_coach_clone.db import Database
|
||||
from garmin_coach_clone.repository import Repository, ScheduleConfig, validate_schedule_config
|
||||
|
||||
@ -17,6 +21,7 @@ def test_schedule_restore_defaults(tmp_path, monkeypatch) -> None:
|
||||
restored = repo.restore_default_schedule()
|
||||
|
||||
assert restored.fixed_times == DEFAULT_FIXED_TIMES
|
||||
assert restored.clone_name_template == DEFAULT_CLONE_NAME_TEMPLATE
|
||||
assert repo.schedule_config().active_window == "05:00-22:00"
|
||||
|
||||
|
||||
@ -31,3 +36,18 @@ def test_schedule_validation_rejects_bad_window() -> None:
|
||||
days_ahead=1,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("template", ["", "{type} {date}", "{unknown} ({clone})"])
|
||||
def test_schedule_validation_rejects_invalid_clone_name_template(template: str) -> None:
|
||||
with pytest.raises(ValueError, match="clone name template|unknown clone"):
|
||||
validate_schedule_config(
|
||||
ScheduleConfig(
|
||||
enabled=True,
|
||||
interval_minutes=30,
|
||||
active_window="05:00-22:00",
|
||||
fixed_times=["05:15"],
|
||||
days_ahead=1,
|
||||
clone_name_template=template,
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user