fix(X13): route by נט-format availability; robust fetch error handling
Live drain surfaced three issues:
1. Tier-0 needed `h2` (httpx http2) — added to the court-fetch extra.
2. Supreme cases that carry a נט-format number (e.g. בר"מ 72182-06-25) were
routed to the unvalidated Tier-0 and failed, even though נט המשפט serves
Supreme cases too. classify() now parses the file-month-year triple for
Supreme prefixes; the orchestrator routes by triple-availability:
נט-format present → Tier-1 (validated, all courts)
serial-only Supreme (עע"מ 5886/24) → Tier-0
neither → clear "no public route" failure
Validated live: בר"מ 72182-06-25 fetched via Tier-1 (5-page PDF).
3. A non-`RuntimeError` fetch exception (the h2 import error) left jobs stuck
in 'running'. The fetch block now catches any Exception → _record_failure
(INV-CF2/CF3), so a job always reaches a terminal state.
+ test_supreme_with_net_format_triple. Suite 11/11.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -78,3 +78,14 @@ def test_empty_and_garbage():
|
||||
def test_normalize_case_number():
|
||||
assert normalize_case_number('עת"מ 46111/12/22') == "46111-12-22"
|
||||
assert normalize_case_number("1110/20") == "1110-20"
|
||||
|
||||
|
||||
def test_supreme_with_net_format_triple():
|
||||
"""A Supreme prefix carrying a נט-format number exposes the triple so the
|
||||
orchestrator can route it to Tier-1 (נט המשפט serves Supreme too)."""
|
||||
c = classify('בר"מ 72182-06-25 הימנותא נ\' הוועדה המקומית')
|
||||
assert c.tier == "supreme"
|
||||
assert (c.file_number, c.month, c.year) == ("72182", "06", "25")
|
||||
# serial-format Supreme has no triple → stays Tier-0-only
|
||||
s = classify('עע"מ 5886/24')
|
||||
assert s.tier == "supreme" and s.file_number is None
|
||||
|
||||
Reference in New Issue
Block a user