"""AA-045-F2 Test: parallele Visual-Requests wie das Cockpit (Promise.all)."""
import concurrent.futures
import urllib.request
import json
SID = "9b0a4244-4f35-42c5-9f96-c8a0a0ef0f21"
BASE = "http://127.0.0.1:8652"
def fetch(fmt):
with urllib.request.urlopen(f"{BASE}/api/visual/{SID}?fmt={fmt}", timeout=120) as r:
return fmt, json.loads(r.read())
with concurrent.futures.ThreadPoolExecutor(2) as ex:
futs = [ex.submit(fetch, "1x1"), ex.submit(fetch, "4x5")]
for f in concurrent.futures.as_completed(futs):
fmt, d = f.result()
status = "OK" if d.get("success") else "FEHLER"
print(f"{fmt}: {status} | {(d.get('path') or d.get('reason'))[:80]}")