shinkan-jinkendo/backend/tests/test_planning_catalog_context.py
Lars 6ab2f20f08
All checks were successful
Deploy Development / deploy (push) Successful in 41s
Test Suite / pytest-backend (push) Successful in 44s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 14s
Test Suite / k6 /health Baseline (push) Successful in 34s
Test Suite / playwright-tests (push) Successful in 1m16s
Enhance Progression Path Suggestion with Planning Catalog Context Integration
- Introduced `planning_catalog_context` to `ProgressionPathSuggestRequest` for improved handling of catalog-related data during path suggestions.
- Implemented `_resolve_planning_catalog_context` to retrieve and validate the planning catalog context, enhancing the robustness of the suggestion process.
- Updated `_build_path_target_profile` to incorporate catalog context, enriching target profiles with relevant planning data.
- Enhanced frontend components in `ProgressionGraphEditor` to manage and display planning catalog context, including new selection options for focus areas, style directions, training types, and target groups.
- Added utility functions for parsing and transforming planning catalog context data for API interactions.
- Bumped version to 0.8.233 to reflect the new features and improvements.
2026-06-12 10:16:55 +02:00

48 lines
1.7 KiB
Python

"""Tests Katalog-Kontext für Progressionsgraph-Matching."""
from planning_catalog_context import (
ProgressionPlanningCatalogContext,
PlanningCatalogContextItem,
catalog_context_has_items,
merge_catalog_context_into_target,
)
from planning_exercise_profiles import PlanningTargetProfile
def test_catalog_context_has_items():
assert not catalog_context_has_items(None)
assert not catalog_context_has_items(ProgressionPlanningCatalogContext())
assert catalog_context_has_items(
ProgressionPlanningCatalogContext(
focus_areas=[PlanningCatalogContextItem(id=3, is_primary=True)],
)
)
def test_merge_catalog_context_into_target_sets_focus():
base = PlanningTargetProfile(sources=["query_only"])
merged = merge_catalog_context_into_target(
base,
ProgressionPlanningCatalogContext(
focus_areas=[PlanningCatalogContextItem(id=7, is_primary=True)],
training_types=[PlanningCatalogContextItem(id=2, is_primary=True)],
),
)
assert merged.focus_area_ids.get(7, 0) > 0.5
assert merged.training_type_ids.get(2, 0) > 0.5
assert "catalog_context" in merged.sources
def test_normalize_planning_roadmap_with_catalog_context():
from progression_graph_planning_artifact import normalize_planning_roadmap_payload
out = normalize_planning_roadmap_payload(
{
"goal_query": "Deeskalation Kinder",
"planning_catalog_context": {
"focus_areas": [{"id": 4, "is_primary": True}],
"target_groups": [{"id": 9, "is_primary": True}],
},
}
)
assert out["planning_catalog_context"]["focus_areas"][0]["id"] == 4