diff --git a/forgetest/forgetest/suite/cloud.py b/forgetest/forgetest/suite/cloud.py index 2cd4140..58abd87 100644 --- a/forgetest/forgetest/suite/cloud.py +++ b/forgetest/forgetest/suite/cloud.py @@ -372,7 +372,13 @@ def mode_switch(ctx): gfhome_homing(ctx, ev, g) finally: if ev["homing_mode"] != "gfcloud": - st, body = fc.post("/settings", data={"homing_mode": ev["homing_mode"] or "none"}) + # Back to exactly what the machine had: unset is the empty + # string, and clearing a key needs the query-string form. + # "none" is a value, and writing it where the machine had + # nothing is a leftover the hand-back reports. + st, body = (fc.post("/settings", params={"homing_mode": ""}) + if not ev["homing_mode"] + else fc.post("/settings", data={"homing_mode": ev["homing_mode"]})) ctx.log("restore homing_mode=%r -> %s", ev["homing_mode"], st) ctx.log("PASS: grbl -> cloud (session, hunt with the lid open, lens homed, airflow unjudged) -> " "grbl (port open, %s), then $H homed in %.1f s", ev["grbl_state"], ev["homing_s"]) diff --git a/forgetest/forgetest/suite/motion.py b/forgetest/forgetest/suite/motion.py index 01eece9..dded12c 100644 --- a/forgetest/forgetest/suite/motion.py +++ b/forgetest/forgetest/suite/motion.py @@ -1337,7 +1337,11 @@ def lid_policy_hold(ctx): g.command("G90") machine_idle(ctx) finally: - st, _b = fc.post("/settings", data={"lid_policy": was}) + # An empty value clears the key, and only the query-string form + # carries one: an empty form field never reaches the request, and + # the write is refused with "no known setting in request". + st, _b = (fc.post("/settings", params={"lid_policy": ""}) if not was + else fc.post("/settings", data={"lid_policy": was})) ev["lid_policy_restored"] = (fc.settings() or {}).get("lid_policy", "") ctx.log("lid_policy restored to %s", ev["lid_policy_restored"]) ctx.check(ev["lid_policy_restored"] == was, "lid_policy was not restored to %r", was)