shinkan-jinkendo/backend/tests/test_planning_compare_slot_diffs.py

48 lines
1.5 KiB
Python
Raw Normal View History

"""Tests Vergleichs-Diffs (triviale ID-Tausche ausfiltern)."""
from planning_exercise_path_builder import (
_build_progression_slot_diffs,
_filter_trivial_slot_diffs,
)
def test_filter_trivial_slot_diffs_same_title_different_id():
diffs = [
{
"roadmap_major_step_index": 1,
"baseline_exercise_id": 10,
"baseline_title": "Rhythmuswechsel in der Kumite-Beinarbeit",
"proposed_exercise_id": 99,
"proposed_title": "Rhythmuswechsel in der Kumite-Beinarbeit",
}
]
assert _filter_trivial_slot_diffs(diffs) == []
def test_filter_trivial_slot_diffs_keeps_real_title_change():
diffs = [
{
"roadmap_major_step_index": 1,
"baseline_exercise_id": 10,
"baseline_title": "Alt",
"proposed_exercise_id": 99,
"proposed_title": "Neu",
}
]
filtered = _filter_trivial_slot_diffs(diffs)
assert len(filtered) == 1
assert filtered[0]["proposed_title"] == "Neu"
def test_build_slot_diffs_then_filter():
baseline = [
{"roadmap_major_step_index": 0, "exercise_id": 1, "title": "A"},
{"roadmap_major_step_index": 1, "exercise_id": 10, "title": "Gleich"},
]
proposed = [
{"roadmap_major_step_index": 0, "exercise_id": 1, "title": "A"},
{"roadmap_major_step_index": 1, "exercise_id": 77, "title": "Gleich"},
]
raw = _build_progression_slot_diffs(baseline, proposed)
assert len(raw) == 1
assert _filter_trivial_slot_diffs(raw) == []