fffiloni commited on
Commit
b8f4efa
·
verified ·
1 Parent(s): 24de7b1

Upload 95 files

Browse files
tests/test_v129_action_gating_polish.py CHANGED
@@ -6,7 +6,7 @@ ROOT = Path(__file__).resolve().parents[1]
6
  def test_active_run_prefill_requires_validation_result():
7
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
8
  assert "function runHasValidationResult" in runs
9
- assert "const canPrefill=Boolean(targetSpace&&runHasValidationResult(detail))" in runs
10
  assert "Space Test prefill becomes available after validation produced a result." in runs
11
 
12
 
@@ -19,8 +19,8 @@ def test_delete_run_requires_finished_status():
19
 
20
  def test_run_documents_do_not_use_backend_present_until_file_exists():
21
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
22
- assert "byId.get('pi_raw_trace').present=Boolean(filePaths.has('traces/raw/agent_trace.jsonl')||hasPrefix('traces/raw'))" in runs
23
- assert "byId.get('pi_redacted_trace').present=Boolean(filePaths.has('traces/redacted/agent_trace.jsonl')||hasPrefix('traces/redacted'))" in runs
24
  assert "nonEmptyObject(detail.repair_decision)" in runs
25
  assert "nonEmptyObject(detail.blockage)" in runs
26
 
 
6
  def test_active_run_prefill_requires_validation_result():
7
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
8
  assert "function runHasValidationResult" in runs
9
+ assert "const canPrefill=Boolean(targetSpace&&runHasValidationResult(detail,summary))" in runs
10
  assert "Space Test prefill becomes available after validation produced a result." in runs
11
 
12
 
 
19
 
20
  def test_run_documents_do_not_use_backend_present_until_file_exists():
21
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
22
+ assert "byId.get('pi_raw_trace').present=Boolean(tracesCollected&&(filePaths.has('traces/raw/agent_trace.jsonl')" in runs
23
+ assert "byId.get('pi_redacted_trace').present=Boolean(tracesCollected&&(filePaths.has('traces/redacted/agent_trace.jsonl')" in runs
24
  assert "nonEmptyObject(detail.repair_decision)" in runs
25
  assert "nonEmptyObject(detail.blockage)" in runs
26
 
tests/test_v134_dependency_build_error_guardrail.py CHANGED
@@ -7,8 +7,7 @@ ROOT = Path(__file__).resolve().parents[1]
7
  def test_worker_pins_transformers_and_safetensors_to_stable_build_line():
8
  worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
9
  assert "transformers>=4.51.0,<5.0.0" in worker
10
- assert "safetensors>=0.4.5,<0.8.0" in worker
11
- assert "Prevent Transformers 5.x from requiring unavailable safetensors>=0.8.0" in worker
12
 
13
 
14
  def test_worker_detects_safetensors_080_pip_resolver_failure():
 
7
  def test_worker_pins_transformers_and_safetensors_to_stable_build_line():
8
  worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
9
  assert "transformers>=4.51.0,<5.0.0" in worker
10
+ assert "Avoid uncontrolled Transformers 5.x" in worker
 
11
 
12
 
13
  def test_worker_detects_safetensors_080_pip_resolver_failure():
tests/test_v138_critical_demo_fixes.py CHANGED
@@ -37,8 +37,8 @@ def test_prefill_uses_progress_summary_and_validation_events():
37
 
38
  def test_run_document_buttons_trust_backend_presence_from_progress_payload():
39
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
40
- assert "byId.get('pi_raw_trace').present&&byId.get('pi_raw_trace').url" in runs
41
- assert "byId.get('pi_redacted_trace').present&&byId.get('pi_redacted_trace').url" in runs
42
  assert "byId.get('smoke').present&&byId.get('smoke').url" in runs
43
 
44
 
 
37
 
38
  def test_run_document_buttons_trust_backend_presence_from_progress_payload():
39
  runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
40
+ assert "tracesCollected&&(filePaths.has('traces/raw/agent_trace.jsonl')" in runs
41
+ assert "tracesCollected&&(filePaths.has('traces/redacted/agent_trace.jsonl')" in runs
42
  assert "byId.get('smoke').present&&byId.get('smoke').url" in runs
43
 
44
 
tests/test_v139_trace_availability_gating.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ ROOT = Path(__file__).resolve().parents[1]
4
+
5
+
6
+ def test_backend_trace_documents_require_exact_agent_trace_and_traces_event():
7
+ bucket = (ROOT / "src" / "bucket.py").read_text(encoding="utf-8")
8
+ fn = bucket.split("def _run_document_links", 1)[1].split("def _normalize_model_name", 1)[0]
9
+ assert "traces_collected = event_passed(\"traces\", {\"success\"})" in fn
10
+ assert "raw_agent_trace_present = traces_collected" in fn
11
+ assert "redacted_agent_trace_present = traces_collected" in fn
12
+ assert "_has_glob(f\"{paths.root}/traces/raw" not in fn
13
+ assert "_has_glob(f\"{paths.root}/traces/redacted" not in fn
14
+ assert "raw_present = raw_agent_trace_present" in fn
15
+ assert "redacted_present = redacted_agent_trace_present" in fn
16
+
17
+
18
+ def test_frontend_trace_buttons_require_exact_agent_trace_and_trace_event():
19
+ runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
20
+ derive = runs.split("function deriveRunDocuments", 1)[1].split("function renderRunDocuments", 1)[0]
21
+ assert "const tracesCollected=eventPassed('traces',['success'])" in derive
22
+ assert "tracesCollected&&(filePaths.has('traces/raw/agent_trace.jsonl')" in derive
23
+ assert "tracesCollected&&(filePaths.has('traces/redacted/agent_trace.jsonl')" in derive
24
+ assert "hasPrefix('traces/raw')" not in derive
25
+ assert "hasPrefix('traces/redacted')" not in derive
26
+
27
+
28
+ def test_no_legacy_trace_folder_fallback_comment_left():
29
+ runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
30
+ assert "Legacy test invariants retained" not in runs
tests/test_v140_dependency_stack_and_build_error_detection.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ ROOT = Path(__file__).resolve().parents[1]
4
+
5
+
6
+ def test_dependency_guardrail_does_not_globally_pin_model_specific_diffusers_stack():
7
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
8
+ normalize = worker.split("def normalize_requirements_for_modern_hub", 1)[1].split("def useful_log_signals", 1)[0]
9
+ assert '"transformers": "transformers>=4.51.0,<5.0.0"' in normalize
10
+ assert '"diffusers": "diffusers>=0.35.0,<0.38.0"' not in normalize
11
+ assert '"safetensors": "safetensors>=0.4.5,<0.8.0"' not in normalize
12
+ assert "concrete pip conflicts remain Pi repair work" in normalize
13
+
14
+
15
+ def test_known_guardrail_is_narrow_not_general_diffusers_autofix():
16
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
17
+ known = worker.split("def known_dependency_guardrail_needed", 1)[1].split("def apply_dependency_guardrail_repair", 1)[0]
18
+ assert "transformers-5" in known
19
+ assert "diffusers 0.38" not in known
20
+ assert "General pip conflicts" in known
21
+
22
+
23
+ def test_validation_loop_detects_terminal_build_error_from_space_logs():
24
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
25
+ assert "def build_log_has_terminal_error" in worker
26
+ assert "def raise_if_collected_build_error" in worker
27
+ assert "Space is in build error; stopping wait and entering recovery" in worker
28
+ validate = worker.split("def validate_live_api", 1)[1].split("def is_auth_or_billing_like_error", 1)[0]
29
+ assert "raise_if_collected_build_error" in validate
30
+ assert "attempt == 1 or attempt % 2 == 0" in validate
31
+ assert "BUILD_ERROR" in validate
tests/test_v141_build_error_observer_agentic_repair.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ ROOT = Path(__file__).resolve().parents[1]
4
+
5
+
6
+ def test_build_error_observer_stops_waiting_on_runtime_build_error():
7
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
8
+ assert "def runtime_stage_is_build_error" in worker
9
+ assert "Space is in build error; stopping wait and entering recovery" in worker
10
+ validate = worker.split("def validate_live_api", 1)[1].split("def is_auth_or_billing_like_error", 1)[0]
11
+ assert "if runtime_stage_is_build_error(stage)" in validate
12
+ assert "raise_if_collected_build_error" in validate
13
+ assert "attempt == 1 or attempt % 2 == 0" in validate
14
+
15
+
16
+ def test_factory_does_not_globally_solve_diffusers_conflicts():
17
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
18
+ normalize = worker.split("def normalize_requirements_for_modern_hub", 1)[1].split("def useful_log_signals", 1)[0]
19
+ known = worker.split("def known_dependency_guardrail_needed", 1)[1].split("def apply_dependency_guardrail_repair", 1)[0]
20
+ assert "Do not try to solve every dependency conflict here" in normalize
21
+ assert "Pi is responsible for" in normalize
22
+ assert "diffusers>=0.35.0,<0.38.0" not in normalize
23
+ assert "diffusers 0.38" not in known
24
+
25
+
26
+ def test_build_error_observation_artifact_is_written():
27
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
28
+ assert "build_error_observation.json" in worker
29
+ assert "DEPENDENCY_ERROR_BRIEF.md" in worker
30
+ assert "Other dependency conflicts are passed to Pi" in worker
tests/test_v142_pi_agent_token_context.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ ROOT = Path(__file__).resolve().parents[1]
4
+
5
+
6
+ def test_job_passes_hf_token_secret_aliases_for_pi_and_hf_tools():
7
+ jobs = (ROOT / "src" / "jobs.py").read_text(encoding="utf-8")
8
+ assert 'secrets={"HF_TOKEN": token, "HUGGING_FACE_HUB_TOKEN": token}' in jobs
9
+ assert "not regular env metadata" in jobs
10
+
11
+
12
+ def test_worker_verifies_and_redacts_token_context():
13
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
14
+ assert "def ensure_hf_token_context" in worker
15
+ assert "token_context.json" in worker
16
+ assert '"token_value": "[REDACTED]"' in worker
17
+ assert "os.environ.setdefault(\"HUGGING_FACE_HUB_TOKEN\", token)" in worker
18
+ assert "Verified HF token context for Pi/HF operations" in worker
19
+
20
+
21
+ def test_pi_prompts_include_tooling_context_and_continue_same_run_instruction():
22
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
23
+ assert "def pi_tooling_context_note" in worker
24
+ assert "HF_TOKEN and HUGGING_FACE_HUB_TOKEN aliases" in worker
25
+ assert "Never print, write, echo, or commit token values" in worker
26
+ assert "You are continuing the same build run, not starting a separate project" in worker
27
+ assert "{pi_tooling_context_note()}" in worker
28
+
29
+
30
+ def test_incident_and_repair_briefs_include_redacted_token_context():
31
+ worker = (ROOT / "src" / "worker_payload.py").read_text(encoding="utf-8")
32
+ assert "## HF tooling/token context" in worker
33
+ assert 'load_json_if_exists(run_dir / "token_context.json")' in worker