File size: 1,247 Bytes
9882577 b8f4efa 9882577 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | from pathlib import Path
import textwrap
ROOT = Path(__file__).resolve().parents[1]
def test_worker_pins_transformers_and_safetensors_to_stable_build_line():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
assert "transformers>=4.51.0,<5.0.0" in worker
assert "Avoid uncontrolled Transformers 5.x" in worker
def test_worker_detects_safetensors_080_pip_resolver_failure():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
assert "def known_dependency_guardrail_needed" in worker
assert "safetensors>=0.8.0" in worker
assert "no matching distribution" in worker
assert "def apply_dependency_guardrail_repair" in worker
assert "dependency_guardrail_repair" in worker
def test_dependency_guardrail_runs_before_pi_diagnosis_loop():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
recovery = worker.split("def recover_after_live_validation_failure", 1)[1].split("def upload_workspace", 1)[0]
assert recovery.index("apply_dependency_guardrail_repair") < recovery.index("for iteration in range(1, 5)")
assert "Dependency-guardrailed workspace uploaded" in recovery
assert "falling back to Pi diagnosis" in recovery
|