Compare commits

...

1 Commits

Author SHA1 Message Date
epenet
dacbfc2b41 Drop single-use service name constants in blink 2026-02-27 09:13:40 +00:00
3 changed files with 12 additions and 21 deletions

View File

@@ -17,14 +17,7 @@ from homeassistant.helpers import config_validation as cv, issue_registry as ir,
from .const import DOMAIN
SERVICE_RECORD = "record"
SERVICE_TRIGGER = "trigger_camera"
SERVICE_SAVE_VIDEO = "save_video"
SERVICE_SAVE_RECENT_CLIPS = "save_recent_clips"
# Deprecated
SERVICE_SEND_PIN = "send_pin"
SERVICE_SEND_PIN_SCHEMA = vol.Schema(
{
vol.Required(ATTR_CONFIG_ENTRY_ID): vol.All(cv.ensure_list, [cv.string]),
@@ -45,14 +38,14 @@ async def _send_pin(call: ServiceCall) -> None:
severity=ir.IssueSeverity.ERROR,
breaks_in_ha_version="2026.5.0",
translation_key="service_send_pin_deprecation",
translation_placeholders={"service_name": f"{DOMAIN}.{SERVICE_SEND_PIN}"},
translation_placeholders={"service_name": f"{call.domain}.{call.service}"},
)
# Service has been removed - raise exception
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="service_removed",
translation_placeholders={"service_name": f"{DOMAIN}.{SERVICE_SEND_PIN}"},
translation_placeholders={"service_name": f"{call.domain}.{call.service}"},
)
@@ -62,7 +55,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
hass.services.async_register(
DOMAIN,
SERVICE_SEND_PIN,
"send_pin",
_send_pin,
schema=SERVICE_SEND_PIN_SCHEMA,
)
@@ -70,7 +63,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service.async_register_platform_entity_service(
hass,
DOMAIN,
SERVICE_RECORD,
"record",
entity_domain=CAMERA_DOMAIN,
schema=None,
func="record",
@@ -78,7 +71,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service.async_register_platform_entity_service(
hass,
DOMAIN,
SERVICE_TRIGGER,
"trigger_camera",
entity_domain=CAMERA_DOMAIN,
schema=None,
func="trigger_camera",
@@ -86,7 +79,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service.async_register_platform_entity_service(
hass,
DOMAIN,
SERVICE_SAVE_RECENT_CLIPS,
"save_recent_clips",
entity_domain=CAMERA_DOMAIN,
schema={vol.Required(CONF_FILE_PATH): cv.string},
func="save_recent_clips",
@@ -94,7 +87,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service.async_register_platform_entity_service(
hass,
DOMAIN,
SERVICE_SAVE_VIDEO,
"save_video",
entity_domain=CAMERA_DOMAIN,
schema={vol.Required(CONF_FILENAME): cv.string},
func="save_video",

View File

@@ -7,7 +7,6 @@ from blinkpy.auth import LoginError
import pytest
from homeassistant.components.blink.const import DOMAIN
from homeassistant.components.blink.services import SERVICE_SAVE_VIDEO
from homeassistant.config_entries import ConfigEntryState
from homeassistant.core import HomeAssistant
@@ -73,7 +72,7 @@ async def test_unload_entry(
assert mock_config_entry.state is ConfigEntryState.LOADED
assert await hass.config_entries.async_unload(mock_config_entry.entry_id)
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
assert hass.services.has_service(DOMAIN, SERVICE_SAVE_VIDEO)
assert hass.services.has_service(DOMAIN, "save_video")
async def test_migrate_V0(

View File

@@ -5,7 +5,6 @@ from unittest.mock import MagicMock
import pytest
from homeassistant.components.blink.const import DOMAIN
from homeassistant.components.blink.services import SERVICE_SEND_PIN
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import ATTR_CONFIG_ENTRY_ID, CONF_PIN
from homeassistant.core import HomeAssistant
@@ -42,7 +41,7 @@ async def test_pin_service_calls(
):
await hass.services.async_call(
DOMAIN,
SERVICE_SEND_PIN,
"send_pin",
{ATTR_CONFIG_ENTRY_ID: [mock_config_entry.entry_id], CONF_PIN: PIN},
blocking=True,
)
@@ -60,7 +59,7 @@ async def test_pin_service_calls(
):
await hass.services.async_call(
DOMAIN,
SERVICE_SEND_PIN,
"send_pin",
{ATTR_CONFIG_ENTRY_ID: ["bad-config_id"], CONF_PIN: PIN},
blocking=True,
)
@@ -89,7 +88,7 @@ async def test_service_pin_creates_repair_issue(
):
await hass.services.async_call(
DOMAIN,
SERVICE_SEND_PIN,
"send_pin",
{ATTR_CONFIG_ENTRY_ID: [mock_config_entry.entry_id], CONF_PIN: PIN},
blocking=True,
)
@@ -109,7 +108,7 @@ async def test_service_pin_creates_repair_issue(
):
await hass.services.async_call(
DOMAIN,
SERVICE_SEND_PIN,
"send_pin",
{ATTR_CONFIG_ENTRY_ID: [mock_config_entry.entry_id], CONF_PIN: PIN},
blocking=True,
)