#!/usr/bin/env python3 """Transport test double, not Blender behavioral evidence.""" import hashlib import json import os from pathlib import Path import signal import sys import time envelope = json.load(sys.stdin) request = envelope["request"] root = Path(envelope["workspaceRoot"]) mode = request["properties"].get("mode", "success") if mode == "signal": os.kill(os.getpid(), signal.SIGTERM) time.sleep(10 if mode == "slow" else 0.4) if mode == "malformed": (root / "result.json").write_text("{") sys.exit(0) result = {key: request[key] for key in ( "schemaVersion", "route", "jobId", "sourceBlendSha256", "sourceRevision", "blenderBuild", "propertiesSha256", "requestSha256", )} data = b"transport-result" result.update(status="SUCCEEDED", result=["FINISHED"], resultSha256=hashlib.sha256(b'["FINISHED"]').hexdigest(), resultBlendByteLength=len(data), resultBlendSha256=hashlib.sha256(data).hexdigest()) if mode == "bad-hash": result["resultBlendSha256"] = "0" * 64 if mode == "bad-binding": result["sourceRevision"] += 1 (root / "result.blend").write_bytes(data) (root / "result.json").write_text(json.dumps(result))