Convert async_get_webrtc_client_configuration to a callback (#129329)

This commit is contained in:
Robert Resch 2024-10-28 15:47:22 +01:00 committed by GitHub
parent 675ee8e813
commit aa855e31c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 13 additions and 10 deletions

View File

@ -803,14 +803,16 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
return await fn(self.hass, self)
async def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
@callback
def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
"""Return the WebRTC client configuration adjustable per integration."""
return WebRTCClientConfiguration()
@final
async def async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
@callback
def async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
"""Return the WebRTC client configuration and extend it with the registered ice servers."""
config = await self._async_get_webrtc_client_configuration()
config = self._async_get_webrtc_client_configuration()
ice_servers = [
server

View File

@ -287,7 +287,7 @@ async def ws_get_client_config(
)
return
config = (await camera.async_get_webrtc_client_configuration()).to_frontend_dict()
config = camera.async_get_webrtc_client_configuration().to_frontend_dict()
connection.send_result(
msg["id"],
config,

View File

@ -28,7 +28,7 @@ from homeassistant.components.camera import (
)
from homeassistant.components.stream import CONF_EXTRA_PART_WAIT_TIME
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import async_track_point_in_utc_time
@ -216,6 +216,7 @@ class NestCamera(Camera):
raise HomeAssistantError(f"Nest API error: {err}") from err
return stream.answer_sdp
async def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
@callback
def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration:
"""Return the WebRTC client configuration adjustable per integration."""
return WebRTCClientConfiguration(data_channel="dataSendChannel")

View File

@ -250,7 +250,7 @@ async def test_async_register_ice_server(
assert not called
camera = get_camera_from_entity_id(hass, "camera.demo_camera")
config = await camera.async_get_webrtc_client_configuration()
config = camera.async_get_webrtc_client_configuration()
assert config.configuration.ice_servers == [
RTCIceServer(urls="stun:example.com"),
@ -275,7 +275,7 @@ async def test_async_register_ice_server(
unregister_2 = async_register_ice_servers(hass, get_ice_servers_2)
config = await camera.async_get_webrtc_client_configuration()
config = camera.async_get_webrtc_client_configuration()
assert config.configuration.ice_servers == [
RTCIceServer(urls="stun:example.com"),
RTCIceServer(urls="turn:example.com"),
@ -292,7 +292,7 @@ async def test_async_register_ice_server(
unregister()
config = await camera.async_get_webrtc_client_configuration()
config = camera.async_get_webrtc_client_configuration()
assert config.configuration.ice_servers == [
RTCIceServer(
urls=["stun:example2.com", "turn:example2.com"],
@ -306,7 +306,7 @@ async def test_async_register_ice_server(
# unregister the second ICE server
unregister_2()
config = await camera.async_get_webrtc_client_configuration()
config = camera.async_get_webrtc_client_configuration()
assert config.configuration.ice_servers == []