feat: smart recreate and dedupe

This commit is contained in:
2026-06-16 19:36:12 +02:00
parent 2e25e7eb34
commit 9141a09b56
4 changed files with 100 additions and 3 deletions

View File

@ -60,6 +60,44 @@ def test_workout_steps_equal_ignores_ids_but_compares_steps() -> None:
assert not workout_steps_equal(left, right)
def test_workout_steps_equal_ignores_garmin_upload_defaults() -> None:
left = build_dummy_cycling_workout("Left")
right = build_dummy_cycling_workout("Right")
repeat = right["workoutSegments"][0]["workoutSteps"][1]
repeat["stepOrder"] = 2
repeat["childStepId"] = 1
repeat["smartRepeat"] = False
for idx, step in enumerate(right["workoutSegments"][0]["workoutSteps"], start=1):
step["stepId"] = 1000 + idx
step["stepOrder"] = idx
step["equipmentType"] = {
"displayOrder": 0,
"equipmentTypeId": 0,
"equipmentTypeKey": None,
}
step["strokeType"] = {
"displayOrder": 0,
"strokeTypeId": 0,
"strokeTypeKey": None,
}
for idx, step in enumerate(repeat["workoutSteps"], start=3):
step["childStepId"] = 1
step["stepId"] = 1000 + idx
step["stepOrder"] = idx
step["equipmentType"] = {
"displayOrder": 0,
"equipmentTypeId": 0,
"equipmentTypeKey": None,
}
step["strokeType"] = {
"displayOrder": 0,
"strokeTypeId": 0,
"strokeTypeKey": None,
}
assert workout_steps_equal(left, right)
def test_existing_clone_names_filters_by_prefix_and_date() -> None:
names = existing_clone_names(
[