| 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 | |