File size: 1,962 Bytes
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 29 30 31 32 33 34 35 36 37 38 39 | from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def test_general_pip_dependency_issue_extraction_is_present():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
assert "def extract_pip_dependency_issue" in worker
assert "Could not find a version that satisfies the requirement" in worker
assert "No matching distribution found for" in worker
assert "metadata-generation-failed" in worker
assert "recommended_patch_scope" in worker
def test_dependency_error_brief_is_written_and_injected_into_repair_prompt():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
assert "DEPENDENCY_ERROR_BRIEF.md" in worker
assert "write_dependency_error_brief" in worker
assert "This brief does **not** replace the HF Spaces gist" in worker
assert "applying the gist method" in worker
assert "patch dependency pins minimally" in worker
def test_dependency_errors_force_patch_not_wait_or_same_code_rebuild():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
normalize = worker.split("def normalize_repair_decision", 1)[1].split("def diagnose_failure_with_pi", 1)[0]
assert "category == \"dependency_error\"" in normalize
assert "gist_log_first_dependency_error_needs_minimal_requirements_patch" in normalize
assert "action in {\"wait_for_logs\", \"inspect_more_logs\", \"factory_rebuild_same_code\"}" in normalize
assert "action = \"patch_code\"" in normalize
def test_classifier_carries_dependency_issue_evidence():
worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
classify = worker.split("def classify_repair_failure", 1)[1].split("def workspace_file_inventory", 1)[0]
assert "dependency_issue = extract_pip_dependency_issue" in classify
assert "\"dependency_issue\": dependency_issue" in classify
assert "Patch requirements.txt or dependency pins" in classify
|