"""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]}")
