agent-exec transport ed920f07e90db7046ab42bec91f8095a/ed5fe66131b3

This commit is contained in:
agent-exec-transport
2026-10-18 11:59:50 +00:00
parent a43aa171ea
commit eb6be71cfc
+26
View File
@@ -3,6 +3,7 @@ import hashlib
import json
import os
from pathlib import Path
import re
import subprocess
import tempfile
import unittest
@@ -525,6 +526,31 @@ class EvidenceTests(unittest.TestCase):
self.assertIn("local continuation validated", result.stdout)
self.assertEqual(self.git("rev-parse", "HEAD", cwd=wt), task_head)
def test_local_precheck_captures_without_remote_tracking_ref(self):
wt = self.local_task()
head_before = self.git("rev-parse", "HEAD", cwd=wt)
# Remove the remote-tracking ref BEFORE capturing, so the precheck fixture
# itself must tolerate the missing refs/remotes/origin/main. The existing
# --local-context rejects this and the capture fails; recording that
# expected red result here.
self.git("update-ref", "-d", "refs/remotes/origin/main")
# The R0 commit recorded on the task card must remain reachable locally
# even after the remote-tracking ref is removed.
self.git("cat-file", "-e", self.head)
result = self.run_evidence("make precheck", cwd=wt, RECEIPT=self.receipt)
self.assertEqual(result.returncode, 0, result.stderr + result.stdout)
self.assertTrue(self.receipt.exists(), "capture must write a receipt")
data = json.loads(self.receipt.read_text())
self.assertEqual(data["exit_code"], 0, data["output"])
self.assertIn("[verdict] LOCAL_READY", data["output"])
states = re.findall(r"^\[task-state\] registered=(.+) initial_base=([0-9a-f]+)$",
data["output"], re.M)
self.assertEqual(len(states), 1, data["output"])
registered, initial_base = states[0]
self.assertEqual(Path(registered).resolve(), wt.resolve())
self.assertEqual(initial_base, self.head)
self.assertEqual(self.git("rev-parse", "HEAD", cwd=wt), head_before)
def test_local_ready_never_authorizes_start_delivery_or_promoted_source(self):
wt = self.local_task()
self.capture("make precheck", cwd=wt)