Publish curated Unraid-AppOps-Gateway source from c61e0e1e292914893b40354f904f23dd9fd4a958

This commit is contained in:
Public Source Publisher committed 2026-10-09 21:29:20 +00:00
1 parent b47ce43436
commit 9b94d8d0f5
18 files changed
+1651 -75

No files matched your search

@@ -156,3 +156,54 @@ def test_statistics_configuration_caller_cannot_select_credential_or_endpoint(co
monkeypatch.setattr(controller, 'configure_runner_statistics_binding', lambda **kwargs: pytest.fail('must not write configuration'))
instance.do_POST()
assert responses == [(400, {'status': 'invalid_request'})]
@pytest.mark.parametrize("stage", ["preflight", "quiesce"])
def test_acceptance_uses_fixed_signed_route_and_protected_source(controller, monkeypatch, stage):
import runner_acceptance_quiescence
instance, responses, signatures = handler(controller, monkeypatch)
instance.path = getattr(controller, "RUNNER_ACCEPTANCE_" + stage.upper() + "_PATH")
calls = []
monkeypatch.setattr(runner_acceptance_quiescence, stage,
lambda **kw: calls.append(kw) or {"status": "blocked", "blockers": ["terminal_origin_claim_missing"]})
instance.do_POST()
assert signatures == [{"method": "POST", "path": instance.path}]
assert calls == [{"revision": "a" * 40, "projects": {controller.SELF_UPGRADE_REPOSITORY: {"branch": "main"}}}]
assert responses == [(200, {"status": "blocked", "blockers": ["terminal_origin_claim_missing"]})]
@pytest.mark.parametrize("stage", ["preflight", "quiesce"])
@pytest.mark.parametrize("gate", ["untrusted", "invalid_signature", "source_mismatch", "push_pending", "wrong_head"])
def test_acceptance_security_gate_refuses_before_executor(controller, monkeypatch, stage, gate):
import runner_acceptance_quiescence
instance, responses, _ = handler(controller, monkeypatch)
instance.path = getattr(controller, "RUNNER_ACCEPTANCE_" + stage.upper() + "_PATH")
monkeypatch.setattr(runner_acceptance_quiescence, stage, lambda **_: pytest.fail("no executor before source/auth gate"))
if gate == "untrusted":
monkeypatch.setattr(instance, "_trusted_client", lambda: False)
elif gate == "invalid_signature":
monkeypatch.setattr(controller, "_self_upgrade_signature_is_valid", lambda *_, **__: False)
elif gate == "source_mismatch":
monkeypatch.setattr(controller, "_require_controller_release", lambda: {"sourceRevision": "b" * 40, "sourceRepository": controller.SELF_UPGRADE_REPOSITORY})
elif gate == "push_pending":
monkeypatch.setattr(controller, "_self_upgrade_preflight", lambda _: {"status": "preflight_rejected"})
else:
monkeypatch.setattr(controller, "_is_current_branch_head", lambda *args: False)
instance.do_POST()
assert responses[0][0] in {403, 409}
@pytest.mark.parametrize("field", ["containerId", "project", "revision", "daemon", "command", "credential", "path"])
def test_acceptance_caller_cannot_choose_any_effect_identity(controller, monkeypatch, field):
instance, responses, _ = handler(controller, monkeypatch, {"reason": "inspect fixture", field: "SECRET-CANARY"})
instance.path = controller.RUNNER_ACCEPTANCE_QUIESCE_PATH
instance.do_POST()
assert responses == [(400, {"status": "invalid_request"})]
assert "SECRET-CANARY" not in str(responses)
def test_pending_acceptance_receipt_fences_legacy_maintenance(controller, monkeypatch):
import runner_acceptance_quiescence
monkeypatch.setattr(runner_acceptance_quiescence, "maintenance_fenced", lambda: True)
monkeypatch.setattr(controller.RunnerFleetService, "automatic_cycle", lambda _: pytest.fail("no re-enable during partial receipt"))
assert controller._runner_maintenance_cycle() == "acceptance_maintenance_owned"