mirror of
https://github.com/Electric-Special/ha-core.git
synced 2026-03-28 15:07:33 +01:00
Adjust remote ESPHome log subscription level on logging change (#139308)
This commit is contained in:
@@ -230,6 +230,7 @@ class MockESPHomeDevice:
|
||||
)
|
||||
self.on_log_message: Callable[[SubscribeLogsResponse], None]
|
||||
self.device_info = device_info
|
||||
self.current_log_level = LogLevel.LOG_LEVEL_NONE
|
||||
|
||||
def set_state_callback(self, state_callback: Callable[[EntityState], None]) -> None:
|
||||
"""Set the state callback."""
|
||||
@@ -432,9 +433,11 @@ async def _mock_generic_device_entry(
|
||||
|
||||
def _subscribe_logs(
|
||||
on_log_message: Callable[[SubscribeLogsResponse], None], log_level: LogLevel
|
||||
) -> None:
|
||||
) -> Callable[[], None]:
|
||||
"""Subscribe to log messages."""
|
||||
mock_device.set_on_log_message(on_log_message)
|
||||
mock_device.current_log_level = log_level
|
||||
return lambda: None
|
||||
|
||||
def _subscribe_voice_assistant(
|
||||
*,
|
||||
|
||||
@@ -57,6 +57,7 @@ async def test_esphome_device_subscribe_logs(
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test configuring a device to subscribe to logs."""
|
||||
assert await async_setup_component(hass, "logger", {"logger": {}})
|
||||
entry = MockConfigEntry(
|
||||
domain=DOMAIN,
|
||||
data={
|
||||
@@ -76,6 +77,15 @@ async def test_esphome_device_subscribe_logs(
|
||||
states=[],
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
await hass.services.async_call(
|
||||
"logger",
|
||||
"set_level",
|
||||
{"homeassistant.components.esphome": "DEBUG"},
|
||||
blocking=True,
|
||||
)
|
||||
assert device.current_log_level == LogLevel.LOG_LEVEL_VERY_VERBOSE
|
||||
|
||||
caplog.set_level(logging.DEBUG)
|
||||
device.mock_on_log_message(
|
||||
Mock(level=LogLevel.LOG_LEVEL_INFO, message=b"test_log_message")
|
||||
@@ -103,6 +113,28 @@ async def test_esphome_device_subscribe_logs(
|
||||
await hass.async_block_till_done()
|
||||
assert "test_debug_log_message" in caplog.text
|
||||
|
||||
await hass.services.async_call(
|
||||
"logger",
|
||||
"set_level",
|
||||
{"homeassistant.components.esphome": "WARNING"},
|
||||
blocking=True,
|
||||
)
|
||||
assert device.current_log_level == LogLevel.LOG_LEVEL_WARN
|
||||
await hass.services.async_call(
|
||||
"logger",
|
||||
"set_level",
|
||||
{"homeassistant.components.esphome": "ERROR"},
|
||||
blocking=True,
|
||||
)
|
||||
assert device.current_log_level == LogLevel.LOG_LEVEL_ERROR
|
||||
await hass.services.async_call(
|
||||
"logger",
|
||||
"set_level",
|
||||
{"homeassistant.components.esphome": "INFO"},
|
||||
blocking=True,
|
||||
)
|
||||
assert device.current_log_level == LogLevel.LOG_LEVEL_CONFIG
|
||||
|
||||
|
||||
async def test_esphome_device_service_calls_not_allowed(
|
||||
hass: HomeAssistant,
|
||||
|
||||
Reference in New Issue
Block a user