You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(themes): deterministic engine-identity e2e, and own the disconnect task
Adds the deterministic no-engine coverage where it is actually reachable.
dashboard_screenshot_engine_url is a runtime-settable AdvancedField
resolved live per capture, so ha_dev_manage_settings can point it at an
explicit URL mid-run -- which forces resolve_engine() to return no
addon_credential, exactly the case where ha-mcp's own credential must not
be treated as the engine account. Both engine-theme actions are asserted to
refuse, and the setting is reset in a finally. This lives in
test_dev_mode_tools.py because the tool is registered only when
HAMCP_ENABLE_DEV_MODE is on, which the themes suite does not set; the
themes-suite test stays tolerant and asserts the structured-error contract.
The shielded close left its inner task pending after a timeout or
cancellation, still holding the socket and able to raise late with no owner.
The task is now created explicitly, cancelled when the bounded wait gives
up, and awaited with return_exceptions=True before the finally exits. The
regression test blocks disconnect() and asserts the task is settled rather
than left pending.
The themes e2e now asserts success is False explicitly before reading the
error fields: the previous shape returned early only on success is True, so
a response missing the field entirely could have passed on truthy error
values alone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Nm7tyA1nfxNCWFXaR3AxV
0 commit comments