core/tests/components/sonos/test_statistics.py

33 lines
1.1 KiB
Python

"""Tests for the Sonos statistics."""
from homeassistant.components.sonos.const import DATA_SONOS
from homeassistant.core import HomeAssistant
async def test_statistics_duplicate(
hass: HomeAssistant, async_autosetup_sonos, soco, device_properties_event
) -> None:
"""Test Sonos statistics."""
speaker = list(hass.data[DATA_SONOS].discovered.values())[0]
subscription = soco.deviceProperties.subscribe.return_value
sub_callback = subscription.callback
# Update the speaker with a callback event
sub_callback(device_properties_event)
await hass.async_block_till_done()
report = speaker.event_stats.report()
assert report["DeviceProperties"]["received"] == 1
assert report["DeviceProperties"]["duplicates"] == 0
assert report["DeviceProperties"]["processed"] == 1
# Ensure a duplicate is registered in the statistics
sub_callback(device_properties_event)
await hass.async_block_till_done()
report = speaker.event_stats.report()
assert report["DeviceProperties"]["received"] == 2
assert report["DeviceProperties"]["duplicates"] == 1
assert report["DeviceProperties"]["processed"] == 1