agent-exec transport ed920f07e90db7046ab42bec91f8095a/ed5fe66131b3
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user