2026-06-14 06:44:12 +02:00
|
|
|
"""Sichtbarkeit: Progressionsgraph ↔ Übungen (Promotion, Kanten, Match)."""
|
2026-06-14 07:30:26 +02:00
|
|
|
from routers.exercise_progression_graphs import (
|
|
|
|
|
_exercise_allowed_in_progression_graph,
|
|
|
|
|
_graph_promotion_transition,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_graph_promotion_transition_private_to_club():
|
|
|
|
|
assert _graph_promotion_transition("private", "club") == ("private",)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_graph_promotion_transition_private_to_official():
|
|
|
|
|
assert _graph_promotion_transition("private", "official") == ("private", "club")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_graph_promotion_transition_club_to_official():
|
|
|
|
|
assert _graph_promotion_transition("club", "official") == ("private", "club")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_graph_promotion_transition_noop():
|
|
|
|
|
assert _graph_promotion_transition("club", "club") is None
|
|
|
|
|
assert _graph_promotion_transition("official", "club") is None
|
|
|
|
|
assert _graph_promotion_transition("private", "private") is None
|
2026-06-14 06:44:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_club_graph_rejects_private_exercise():
|
|
|
|
|
assert not _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "private", "club_id": None, "created_by": 1},
|
|
|
|
|
graph_visibility="club",
|
|
|
|
|
graph_club_id=5,
|
|
|
|
|
profile_id=1,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_club_graph_accepts_matching_club_exercise():
|
|
|
|
|
assert _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "club", "club_id": 5, "created_by": 2},
|
|
|
|
|
graph_visibility="club",
|
|
|
|
|
graph_club_id=5,
|
|
|
|
|
profile_id=1,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_club_graph_accepts_official_exercise():
|
|
|
|
|
assert _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "official", "club_id": None, "created_by": 99},
|
|
|
|
|
graph_visibility="club",
|
|
|
|
|
graph_club_id=5,
|
|
|
|
|
profile_id=1,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_private_graph_accepts_own_private_exercise():
|
|
|
|
|
assert _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "private", "club_id": None, "created_by": 7},
|
|
|
|
|
graph_visibility="private",
|
|
|
|
|
graph_club_id=None,
|
|
|
|
|
profile_id=7,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_official_graph_requires_official_exercise():
|
|
|
|
|
assert not _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "club", "club_id": 5, "created_by": 2},
|
|
|
|
|
graph_visibility="official",
|
|
|
|
|
graph_club_id=None,
|
|
|
|
|
profile_id=1,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|
|
|
|
|
assert _exercise_allowed_in_progression_graph(
|
|
|
|
|
{"visibility": "official", "club_id": None, "created_by": 2},
|
|
|
|
|
graph_visibility="official",
|
|
|
|
|
graph_club_id=None,
|
|
|
|
|
profile_id=1,
|
|
|
|
|
role="trainer",
|
|
|
|
|
)
|