Rewrite job_runner, event_bridge, cost estimator, and DigiKey client.

Local pid-file dispatch stays the self-host path. DigiKey still rejects unrelated MPNs. Inherited copies remain on disk.
This commit is contained in:
2026-09-20 18:57:58 +02:00
parent e240afce23
commit 6a4903fa3a
5 changed files with 998 additions and 0 deletions
@@ -0,0 +1,40 @@
"""Leftover dispatcher/cost/DigiKey modules load from src."""
from __future__ import annotations
from pathlib import Path
import backend.services.cost_estimator as cost_estimator
import backend.services.digikey as digikey
import backend.services.event_bridge as event_bridge
import backend.services.job_runner as job_runner
from backend.services.digikey import _find_product
from backend.services.job_runner import get_execution_state
def test_dispatcher_modules_are_src():
for mod, name in (
(job_runner, "job_runner.py"),
(event_bridge, "event_bridge.py"),
(cost_estimator, "cost_estimator.py"),
(digikey, "digikey.py"),
):
path = Path(mod.__file__).resolve()
assert path.name == name
assert "src" in path.parts
assert "Native Periscope overlay" not in path.read_text(encoding="utf-8")[:400]
def test_digikey_rejects_unrelated_and_accepts_family():
products = [{"ManufacturerProductNumber": "CH340E"}]
assert _find_product("CH340", products) is None
products = [{"ManufacturerProductNumber": "24AA025E64-I/SN"}]
assert _find_product("24AA025E64", products) is not None
def test_stale_pid_is_failed(tmp_path, monkeypatch):
monkeypatch.setattr(job_runner.settings, "data_dir", tmp_path)
pid_path = tmp_path / "workers" / "proj.pid"
pid_path.parent.mkdir(parents=True)
pid_path.write_text("99999999")
assert get_execution_state("local/projects/proj") == "failed"