From a729197a8f8576254e4316691b1626d687dbce11 Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Mon, 12 Oct 2026 15:32:11 -0400 Subject: [PATCH] forgetest: the first-run flow checks the machine facts see the head setup.first-run-flow, after the machine step, checks that GET /wiz's machine facts read the head as present with a hardware id. The facts had read every head as not detected (forgectrl looked for "hw_id=" where the module prints "id="); the bench reference always has a head, so the check holds on every campaign. Proof: the setup host tests and the manifest tests pass; on the bench reference with the fixed forgectrl, GET /wiz reads the head as present with hw_id 044c. Acceptance: this is the test; it covers src/wiz.* already. --- forgetest/forgetest/suite/setup.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forgetest/forgetest/suite/setup.py b/forgetest/forgetest/suite/setup.py index b5f20a3..e735a39 100644 --- a/forgetest/forgetest/suite/setup.py +++ b/forgetest/forgetest/suite/setup.py @@ -1580,6 +1580,12 @@ def first_run_flow(ctx): model = machine.get("model") if machine.get("model") in ("basic", "plus", "pro") else "basic" st, body = fc.post("/wiz/machine", data={"model": model, "tec": "0"}) ctx.check(st == 200, "POST /wiz/machine -> %s %s", st, body if isinstance(body, dict) else "") + # The machine facts the step records see the head: its hardware id + # is the module's head/info "id" line. + head = (wiz(fc).get("machine") or {}).get("head") or {} + ev["head"] = head + ctx.check(head.get("present") is True and bool(head.get("hw_id")), + "the machine facts do not see the head: %s", head) still_gated(REQUIRED_STEPS[2:]) if settings.get("cloud_enabled") == "1": data = {"enabled": "1", "phrase": SAFETY_PHRASE,