Harden prashna production entrypoints

This commit is contained in:
732642856
2026-07-16 21:54:34 +08:00
parent 0e15b05308
commit 3f86f6d77c
16 changed files with 626 additions and 51 deletions
+32
View File
@@ -0,0 +1,32 @@
from datetime import datetime
import pytest
from scripts.prashna_context import PrashnaContextError, build_prashna_context
def test_prashna_context_uses_backend_chart_from_question_moment():
packet = build_prashna_context({
"question_text": "Will this proceed?",
"question_timestamp": "2026-07-12T12:00:00+08:00",
"lat": 39.9042,
"lon": 116.4074,
"timezone": 8,
"ayanamsa": "lahiri",
"node_mode": "mean",
"location_convention": "wgs84",
})
assert packet["status"] == "computed"
assert packet["chart_source"] == "swiss_ephemeris_backend"
assert packet["ascendant"]["degree"] >= 0
assert "Sun" in packet["planets"]
assert "question_timestamp" in packet
def test_prashna_context_rejects_missing_time_or_non_wgs84_location():
base = {"question_text": "x", "lat": 1, "lon": 1, "timezone": 0}
with pytest.raises(PrashnaContextError, match="question_timestamp"):
build_prashna_context(base)
with pytest.raises(PrashnaContextError, match="location_convention"):
build_prashna_context({**base, "question_timestamp": "2026-01-01T00:00:00+00:00", "location_convention": "unknown"})