Files
Jyotisha/tests/test_fragment_migration_registries.py
2026-07-21 02:22:01 +08:00

47 lines
2.3 KiB
Python

import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
EVENT = ROOT / "references/oracle/event_judgment_fragment_rule_family_registry_2026_07_21.json"
JOURNEY = ROOT / "references/oracle/research_birth_time_journey_ui_contract_2026_07_21.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_event_judgment_fragment_registry_ports_rules_not_engine():
data = json.loads(EVENT.read_text(encoding="utf-8"))
assert data["source_policy"] == "rule_family_inventory_only_no_runtime_copy"
assert data["claim_status"] == "ready_contract"
routes = {row["route"]: row for row in data["route_families"]}
assert {"relationship", "career", "wealth"} <= set(routes)
relationship = {row["key"] for row in routes["relationship"]["required_families"]}
assert {"d9_navamsa", "upapada_lagna", "vimshottari_current", "narayana_current"} <= relationship
career = {row["key"] for row in routes["career"]["required_families"]}
assert {"d10_dasamsa", "a10_karma_pada", "shadbala"} <= career
wealth = {row["key"] for row in routes["wealth"]["required_families"]}
assert {"d2_hora", "ashtakavarga_house_scores", "gains_convergence"} <= wealth
assert any("Functional Benefic/Malefic" in item for item in data["global_requirements"])
def test_birth_time_journey_contract_ports_behavior_not_commercial_runtime():
data = json.loads(JOURNEY.read_text(encoding="utf-8"))
assert data["source_policy"] == "behavior_contract_only_no_commercial_code"
contracts = {row["contract_id"]: row for row in data["contracts"]}
assert {
"profile_mode_hides_chat_overlay",
"new_chat_restores_chat_surface",
"candidate_claim_stays_exploratory",
"local_resume_only",
"user_error_contract",
} <= set(contracts)
assert "Supabase runtime" in data["forbidden_imports"]
assert "credits/payment/subscription logic" in data["forbidden_imports"]
def test_fragment_migration_registries_are_indexed():
packets = {
row["packet_id"]: row
for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]
}
assert packets["event_judgment_fragment_rule_family_registry_2026_07_21"]["claim_status"] == "ready_contract"
assert packets["research_birth_time_journey_ui_contract_2026_07_21"]["claim_status"] == "ready_contract"