Fix produce-box select cancelling config entry setup
Validate / hassfest (push) Skipped
Validate / pytest (push) Successful in 11s
Validate / HACS (push) Skipped

async_added_to_hass listed the switchable boxes inline, one fetch per box
popup, so on a slower connection the platform setup ran past
SLOW_SETUP_MAX_WAIT and the whole config entry was cancelled into
setup_error — every entity unavailable despite valid credentials. Move the
listing to a background task so setup never blocks on it; the options fill in
once it returns.

Also bound every portal request to a 30s timeout so one hung request can no
longer drag a refresh, or a first setup, past Home Assistant's own limits and
fail it outright.

Regression covered in tests/test_setup_hygiene.py.
This commit is contained in:
flan
2026-08-04 16:04:27 +00:00
parent 8051cc7465
commit 0a5441779a
9 changed files with 152 additions and 19 deletions
+1
View File
@@ -26,6 +26,7 @@ def _load_api():
stub = types.ModuleType("aiohttp")
stub.ClientSession = object
stub.ClientError = Exception
stub.ClientTimeout = lambda *args, **kwargs: None
sys.modules["aiohttp"] = stub
if "yarl" not in sys.modules:
try: