Files
Jyotisha/tests/test_vedastro_chat_runtime_config.py
T
2026-07-15 22:23:17 +08:00

83 lines
2.5 KiB
Python

from __future__ import annotations
import sys
def _birth_case() -> dict[str, object]:
return {
"year": 1992,
"month": 8,
"day": 17,
"hour": 14,
"minute": 30,
"lat": 23.1291,
"lon": 113.2644,
"tz": 8,
"reference_date": "2026-07-14",
}
def test_vedastro_child_process_defaults_to_active_interpreter(monkeypatch) -> None:
from scripts import vedastro_service_adapter
monkeypatch.delenv("VEDASTRO_PYTHON_BIN", raising=False)
monkeypatch.delenv("PYTHON_BIN", raising=False)
assert vedastro_service_adapter._vedastro_python_bin() == sys.executable
def test_fast_snapshot_executes_only_five_scalar_methods(monkeypatch) -> None:
from scripts import vedastro_official_capability_runner as runner
calls: list[str] = []
def fake_call(method: str, _payload: dict[str, object]) -> dict[str, object]:
calls.append(method)
return {"available": True, "status": "ok", "result": {"method": method}}
monkeypatch.setattr(runner, "SNAPSHOT_FANOUT_ENABLED", False)
monkeypatch.setattr(runner, "_call_bridge", fake_call)
result = runner.run_snapshot_bundle("official_full_snapshot", _birth_case())
assert calls == [
"DasaAtRange",
"DasaAtTime",
"GetCharaDasaAtTime",
"AllPlanetStrength",
"AshtakvargaLifeMap",
]
assert result["available"] is True
assert result["summary"]["requested_method_count"] == 5
assert result["summary"]["fanout_enabled"] is False
assert set(result["result"]["snapshot_sections"]) == {
"dasha_all",
"vimshottari_now",
"chara_dasha_now",
"shadbala",
"ashtakavarga",
}
def test_disabled_range_scan_never_calls_network(monkeypatch) -> None:
from scripts import vedastro_service_adapter
monkeypatch.setenv("VEDASTRO_API_ENDPOINT", "https://api.vedastro.org/api")
monkeypatch.setenv("VEDASTRO_ENABLE_NETWORK", "1")
monkeypatch.setenv("VEDASTRO_RANGE_SCAN_NETWORK_ENABLED", "0")
def fail_if_called(*_args, **_kwargs):
raise AssertionError("range scan network request should not run in chat mode")
monkeypatch.setattr(vedastro_service_adapter, "_post_json_with_retry", fail_if_called)
result = vedastro_service_adapter.run_range_scan_for_case(
_birth_case(),
"career",
"2026-07-14",
"2026-08-14",
)
assert result["status"] == "network_execution_disabled"
assert "interactive chat path" in result["reason"]