import os import time import urllib.request base_url = os.getenv("E2E_BASE_URL", "http://web").rstrip("/") health_url = os.getenv("E2E_HEALTH_URL", f"{base_url}/") deadline = time.time() + int(os.getenv("E2E_WEB_TIMEOUT_SECONDS", "120")) last_error = None while time.time() < deadline: try: with urllib.request.urlopen(health_url, timeout=5) as response: if response.status < 500: break except Exception as exc: last_error = exc time.sleep(2) else: raise SystemExit(f"Timed out waiting for {health_url}: {last_error}") with urllib.request.urlopen(f"{base_url}/", timeout=5) as response: if response.status >= 500: raise SystemExit(f"Web returned HTTP {response.status} at {base_url}/")