From 6aeb59e88828b8ca04f3ea4c5f4eddbdbb9c4bd1 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Sun, 28 Jun 2026 18:21:23 +0800 Subject: [PATCH] Render full functional role summary in reports --- scripts/jyotish_api_server.py | 6 ++++++ tests/test_api_server_security.py | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/scripts/jyotish_api_server.py b/scripts/jyotish_api_server.py index c42ed5a1..ee925234 100644 --- a/scripts/jyotish_api_server.py +++ b/scripts/jyotish_api_server.py @@ -451,6 +451,8 @@ class JyotishAPIHandler(BaseHTTPRequestHandler): malefics = snapshot.get('functional_malefics') if not isinstance(benefics, list) or not isinstance(malefics, list): return html + neutrals = snapshot.get('functional_neutrals') if isinstance(snapshot.get('functional_neutrals'), list) else [] + yogakarakas = snapshot.get('yogakarakas') if isinstance(snapshot.get('yogakarakas'), list) else [] def _escape(value): return html_lib.escape(str(value or '')) @@ -458,6 +460,8 @@ class JyotishAPIHandler(BaseHTTPRequestHandler): ascendant = _escape(snapshot.get('ascendant') or snapshot.get('asc_sign') or 'Unknown') benefic_text = _escape(', '.join(str(item) for item in benefics) or 'None') malefic_text = _escape(', '.join(str(item) for item in malefics) or 'None') + neutral_text = _escape(', '.join(str(item) for item in neutrals) or 'None') + yogakaraka_text = _escape(', '.join(str(item) for item in yogakarakas) or 'None') confidence_text = _escape(snapshot.get('effect_on_confidence') or 'Functional role layer was used in the final judgement.') source_text = _escape(snapshot.get('source') or 'strict_functional_benefic_malefic_v1') @@ -469,6 +473,8 @@ class JyotishAPIHandler(BaseHTTPRequestHandler): f'

Ascendant: {ascendant}

' f'

Functional Benefics: {benefic_text}

' f'

Functional Malefics: {malefic_text}

' + f'

Functional Neutrals: {neutral_text}

' + f'

Yogakarakas: {yogakaraka_text}

' f'

Confidence Impact: {confidence_text}

' f'

Source: {source_text}

' '' diff --git a/tests/test_api_server_security.py b/tests/test_api_server_security.py index 376a1396..379ac1b5 100644 --- a/tests/test_api_server_security.py +++ b/tests/test_api_server_security.py @@ -445,6 +445,8 @@ def test_report_artifact_can_render_functional_benefic_malefic_summary() -> None 'ascendant': 'Leo', 'functional_benefics': ['Sun', 'Mars', 'Jupiter'], 'functional_malefics': ['Venus', 'Saturn'], + 'functional_neutrals': ['Mercury'], + 'yogakarakas': ['Mars'], 'effect_on_confidence': '高严谨模式下必须叠加功能性吉凶星。', }, }) @@ -455,6 +457,10 @@ def test_report_artifact_can_render_functional_benefic_malefic_summary() -> None assert 'Leo' in html assert 'Sun, Mars, Jupiter' in html assert 'Venus, Saturn' in html + assert 'Mercury' in html + assert 'Mars' in html + assert 'Yogakarakas' in html + assert 'Functional Neutrals' in html assert '高严谨模式下必须叠加功能性吉凶星。' in html