#!/usr/bin/env python3 """Deterministic runner fixture for test-preflight contract tests.""" import json import os import sys request = json.load(sys.stdin) scenario = os.environ.get("PREFLIGHT_RUNNER_SCENARIO", "ready") operation = request.get("operation") if operation in {"deployment", "prepare"}: print(json.dumps({"status": "ready", "observed": "mock test deploy receipt"})) elif operation == "platform_probe": platform = request.get("platform") if scenario == "android-unauthorized" and platform == "android": print(json.dumps({"status": "environment-fail", "checks": { "adb": {"status": "ready", "observed": "adb 35", "expected": "adb responds"}, "device": {"status": "environment-fail", "observed": "emulator-5554 unauthorized", "expected": "authorized device", "remediation": "accept RSA authorization"}, "boot": {"status": "environment-fail", "observed": "unknown", "expected": "boot complete"}, }})) elif scenario == "mac-unavailable" and platform == "ios": print(json.dumps({"status": "environment-fail", "checks": { "macos": {"status": "environment-fail", "observed": "Mac unavailable", "expected": "Darwin tester node", "remediation": "restore tester.ios Mac"}, }})) else: print(json.dumps({"status": "ready", "checks": { "adb": {"status": "ready", "observed": "adb 35", "expected": "adb responds"}, "device": {"status": "ready", "observed": "authorized", "expected": "authorized device"}, "boot": {"status": "ready", "observed": "boot complete", "expected": "boot complete"}, "macos": {"status": "ready", "observed": "Darwin", "expected": "Darwin"}, "xcrun": {"status": "ready", "observed": "xcrun", "expected": "xcrun"}, "simctl": {"status": "ready", "observed": "available", "expected": "simctl"}, }})) elif operation == "network_probe": if scenario == "host-unreachable": print(json.dumps({"status": "environment-fail", "checks": { "dns": {"status": "ready", "observed": "10.0.0.2", "expected": "DNS resolves"}, "tcp": {"status": "environment-fail", "observed": "connection refused", "expected": "TCP reachable", "remediation": "check HOST route"}, }})) elif scenario == "http-failure": print(json.dumps({"status": "environment-fail", "checks": { "dns": {"status": "ready", "observed": "10.0.0.2", "expected": "DNS resolves"}, "tcp": {"status": "ready", "observed": "443 open", "expected": "TCP reachable"}, "http": {"status": "environment-fail", "observed": 503, "expected": "HTTP 2xx-4xx", "remediation": "check service health"}, }})) else: print(json.dumps({"status": "ready", "checks": { "dns": {"status": "ready", "observed": "10.0.0.2", "expected": "DNS resolves"}, "tcp": {"status": "ready", "observed": "443 open", "expected": "TCP reachable"}, "http": {"status": "ready", "observed": 200, "expected": "HTTP 2xx-4xx"}, }})) elif operation == "capability_probe": capability = request.get("capability") checks = { "album_picker": { "picker": {"status": "ready", "observed": "real picker opened and returned image-001"}, }, "photo_permission": { "permission": {"status": "ready", "observed": "permission state checked on device"}, "test_image": {"status": "ready", "observed": "image-001 available in test album"}, }, "ime_pinyin": { "composition": {"status": "ready", "observed": "nihao composed in Chinese IME"}, "candidates": {"status": "ready", "observed": "你好 candidate selected"}, }, } if scenario == "capability-missing" and capability == "album_picker": print(json.dumps({"status": "ready", "checks": {}})) else: print(json.dumps({"status": "ready", "checks": checks.get(capability, {})})) elif operation in {"install", "start"}: print(json.dumps({"status": "ready", "observed": operation + "ed mock artifact"})) else: print(json.dumps({"status": "environment-fail", "observed": "unknown operation"}))