fix(chv-muse-r12fix-4): detect_checkout 接进 CDP broker(P10)
R12 真机:detect_checkout 在 chv-guest/、host.py、 executor.py 里零引用,结账页无任何拦截。按 P10 gap §4.1 接线:broker 加载 cloud/chv/checkout_detect.py(同目录 优先,仓库路径兜底;缺失时降级关闭检测、写警告,绝不 crash-loop);snapshot() 每次重算 verdict(aria 行拼伪节点, 与 _form_risk 同形),open() 导航前后两道门——落点是结账 页时返回 form_submit ask 并暂停,上一页是结账页时下一次 导航先审批;ask 批过后同 URL 不再重复 ask(批准即放行, 与 form_risk 同口径);verdict 进 snapshot()/status() 回包。 build.sh:checkout_detect.py 条件拷入 /usr/local/bin/(0644, P3/P6 同款只警告口径,M4 不硬要求 cloud/), extra_contents 与两处 lockfile 登记补齐。钱包三腿不在本轮 范围,未动。
This commit is contained in:
1 parent
1da0d86159
commit
0ebcdfb2a7
7 files changed
+258
-8
No files matched your search
@@ -6,7 +6,10 @@
|
||||
- 中英文特征;节点为空;页面金额只作展示信号。
|
||||
"""
|
||||
|
||||
import importlib.util
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
@@ -129,5 +132,43 @@ class CheckoutNodesTest(unittest.TestCase):
|
||||
self.assertIsNone(verdict.amount_text)
|
||||
|
||||
|
||||
class BuildInfoContentsTest(unittest.TestCase):
|
||||
"""round-12 修复轮(项 4,P10):checkout_detect 是条件拷入
|
||||
件——存在时经 extra_contents 登记进 BUILDINFO contents
|
||||
(不在 BASE_CONTENTS 里,缺失的构建绝不谎称已进镜像,
|
||||
与 P3 叶子模块同款口径)。"""
|
||||
|
||||
def test_extra_contents_include_checkout_detect(self):
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
path = root / "chv-guest" / "buildinfo.py"
|
||||
spec = importlib.util.spec_from_file_location(
|
||||
"chv_guest_p10_buildinfo", str(path))
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
self.assertNotIn("checkout_detect",
|
||||
module.BASE_CONTENTS)
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
out = os.path.join(tmp, "out")
|
||||
os.makedirs(out)
|
||||
for name, content in (("disk.raw", b"D"),
|
||||
("vmlinux", b"K")):
|
||||
with open(os.path.join(out, name), "wb") as fh:
|
||||
fh.write(content)
|
||||
for name, lines in (
|
||||
("guest-versions-dpkg.txt", ["git 9.9.9-9ubuntu9"]),
|
||||
("guest-versions-pip.txt", ["playwright==9.9.9"]),
|
||||
("guest-versions-gt.txt", ["gt version 1.0.0"]),
|
||||
("guest-versions-chromium.txt",
|
||||
["chromium_headless_shell-1248"])):
|
||||
with open(os.path.join(out, name), "w") as fh:
|
||||
fh.write("\n".join(lines) + "\n")
|
||||
info = module.build(
|
||||
out, "chv-guest-24.04-0.164.0-alpha.9-abc1234", "24.04",
|
||||
"0.164.0-alpha.9", "abc1234", "0" * 64, True, "1248",
|
||||
["cloud/chv/checkout_detect.py"])
|
||||
self.assertIn("cloud/chv/checkout_detect.py",
|
||||
info["contents"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user