mitai-jinkendo/backend/tests/test_report_profile_schema.py
Lars 3ab5dae130
All checks were successful
Deploy Development / deploy (push) Successful in 1m1s
Build Test / pytest-backend (push) Successful in 5s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 20s
feat: add viz_bundle support to report generation and enhance schema
- Introduced the `viz_bundle` block type to the report profile schema, allowing for the inclusion of bundled visualizations in PDF reports.
- Updated the `build_structured_report_pdf` function to handle `VizBundleBlock` and append its content to the report.
- Enhanced the report catalog API to include details for the new `viz_bundle` block type.
- Added configuration editors for various visualization bundles in the frontend settings page.
- Updated tests to validate the new `viz_bundle` functionality and ensure proper handling of report profiles.
- Bumped application version to reflect these enhancements.
2026-04-29 11:46:34 +02:00

57 lines
1.4 KiB
Python

"""Berichtsprofil-Schema: Defaults und Validierung."""
from report_profile_schema import (
ReportProfilePayload,
default_report_profile_dict,
parse_report_profile,
)
def test_default_profile_roundtrip():
d = default_report_profile_dict()
p = ReportProfilePayload.model_validate(d)
assert p.version == 1
assert len(p.blocks) >= 3
def test_parse_empty_uses_default():
p = parse_report_profile({})
assert len(p.blocks) >= 1
def test_chart_block_unknown_id_raises():
import pytest
raw = {
"version": 1,
"document_title": "",
"blocks": [{"type": "chart", "chart_id": "not_a_chart", "window_days": 28}],
}
with pytest.raises(Exception):
ReportProfilePayload.model_validate(raw)
def test_viz_bundle_roundtrip():
raw = {
"version": 1,
"document_title": "",
"blocks": [
{"type": "viz_bundle", "bundle_id": "body_history_viz", "config": {"chart_days": 14}},
],
}
p = ReportProfilePayload.model_validate(raw)
assert p.blocks[0].type == "viz_bundle"
assert p.blocks[0].config.get("chart_days") == 14
def test_viz_bundle_unknown_raises():
import pytest
raw = {
"version": 1,
"document_title": "",
"blocks": [{"type": "viz_bundle", "bundle_id": "not_a_bundle", "config": {}}],
}
with pytest.raises(Exception):
ReportProfilePayload.model_validate(raw)