Switchbot_cloud: fixed cloud hook error (#175336)

This commit is contained in:
Samuel Xiao
2026-07-03 18:19:56 +00:00
committed by Franck Nijhof
parent 9bcb7ea8ec
commit 272ebff2ff
2 changed files with 8 additions and 13 deletions
@@ -523,11 +523,7 @@ async def _async_get_webhook_url(
return str(entry.data[CONF_CLOUDHOOK_URL])
if cloud.async_is_connected(hass):
webhook_id = entry.data[CONF_WEBHOOK_ID]
# A previous run may have left a cloudhook registered for this
# webhook id; delete it so we can create a fresh one.
with contextlib.suppress(cloud.CloudNotAvailable):
await cloud.async_delete_cloudhook(hass, webhook_id)
cloudhook_url = await cloud.async_create_cloudhook(hass, webhook_id)
cloudhook_url = await cloud.async_get_or_create_cloudhook(hass, webhook_id)
hass.config_entries.async_update_entry(
entry, data={**entry.data, CONF_CLOUDHOOK_URL: cloudhook_url}
)
@@ -596,7 +592,6 @@ def _create_handle_webhook(
data,
)
return
coordinator = coordinators_by_id[device_mac]
coordinator.webhook_subscription_listener(True)
coordinator.async_set_updated_data(data["context"])
@@ -408,7 +408,7 @@ async def test_setup_creates_cloudhook_when_cloud_active(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
) as fake_create_cloudhook,
patch("homeassistant.components.cloud.async_delete_cloudhook"),
@@ -463,7 +463,7 @@ async def test_setup_reuses_persisted_cloudhook(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
) as fake_create_cloudhook,
patch("homeassistant.components.cloud.async_delete_cloudhook"),
@@ -549,7 +549,7 @@ async def test_cloud_connects_after_setup(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
) as fake_create_cloudhook,
patch("homeassistant.components.cloud.async_delete_cloudhook"),
@@ -593,7 +593,7 @@ async def test_setup_active_subscription_not_connected(
patch("homeassistant.components.cloud.async_is_connected", return_value=False),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
side_effect=cloud.CloudNotConnected,
) as fake_create_cloudhook,
patch("homeassistant.components.cloud.async_delete_cloudhook"),
@@ -611,7 +611,7 @@ async def test_setup_active_subscription_not_connected(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
) as fake_create_cloudhook,
patch("homeassistant.components.cloud.async_delete_cloudhook"),
@@ -647,7 +647,7 @@ async def test_cloudhook_deleted_on_entry_removal(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
),
patch(
@@ -728,7 +728,7 @@ async def test_remove_entry_with_cloud_unavailable(
patch("homeassistant.components.cloud.async_is_connected", return_value=True),
patch.object(cloud, "async_active_subscription", return_value=True),
patch(
"homeassistant.components.cloud.async_create_cloudhook",
"homeassistant.components.cloud.async_get_or_create_cloudhook",
return_value=CLOUDHOOK_URL,
),
patch(