fix(chv-muse-r12fix3-3): 回落审计 repo 记解析后的仓目录(P6 小项 A)
R12 复测 2 轻微缺口:回落审计行的 repo 字段为空串——fallback_warn 记的是调用方传的原始参数,而驱动与日常调用都是无参调用 (cd 仓 && chv-sync status)。单仓无损,多仓时审计分不清是哪 一仓回落。 修法:cmd_pull/cmd_push/cmd_status 三处都先调 resolve_repo 解析 仓目录,再以解析后的目录调 fallback_warn。解析失败即 die、不 留回落审计——同步本身已失败,没有“回落”可记(此前是先记审计 再解析,解析失败也留一行空 repo 审计)。 测试:ChvSyncDelegationTest——无参回落的 repo 即唯一仓目录 (不再是空串),显式给仓目录时 repo 即该目录。P6 模块 65 项全过。
This commit is contained in:
1 parent
7cba3c2b21
commit
7784be0657
3 files changed
+30
-6
No files matched your search
@@ -681,10 +681,28 @@ class ChvSyncDelegationTest(unittest.TestCase):
|
||||
record = json.loads(lines[0])
|
||||
self.assertEqual(record["event"], "chv_sync_worker_fallback")
|
||||
self.assertEqual(record["action"], "status")
|
||||
# round-12 修复轮第三轮(小项 A):repo 记 resolve_repo
|
||||
# 解析后的仓目录——无参调用时是唯一仓的目录,不再是空串。
|
||||
self.assertEqual(record["repo"],
|
||||
os.path.join(self.ws, "repo"))
|
||||
self.assertIs(record["delegated_to_worker"], False)
|
||||
self.assertIs(record["privsep_active"], False)
|
||||
self.assertIn("ts", record)
|
||||
|
||||
def test_fallback_audit_repo_is_explicit_arg(self):
|
||||
# 显式给仓目录时 repo 即该目录(与无参解析同款语义)。
|
||||
self.env["CHV_GITEA_WORKER_SOCK"] = os.path.join(
|
||||
self.tmp.name, "no-worker.sock")
|
||||
proc = self._run_sync(
|
||||
"status", os.path.join(self.ws, "repo"))
|
||||
self.assertIn("worker 不在", proc.stderr)
|
||||
with open(self.audit) as fh:
|
||||
lines = [line for line in fh if line.strip()]
|
||||
self.assertEqual(len(lines), 1)
|
||||
record = json.loads(lines[0])
|
||||
self.assertEqual(record["repo"],
|
||||
os.path.join(self.ws, "repo"))
|
||||
|
||||
def test_fallback_audit_accumulates_one_line_per_call(self):
|
||||
self.env["CHV_GITEA_WORKER_SOCK"] = os.path.join(
|
||||
self.tmp.name, "no-worker.sock")
|
||||
|
||||
Reference in new issue
Block a user