Fix Sonos CI issue part 2 (#150529)

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
This commit is contained in:
Pete Sage
2025-08-13 06:26:24 -04:00
committed by GitHub
parent 5fc2e6ed53
commit 51fbccd125
2 changed files with 19 additions and 8 deletions

View File

@@ -167,6 +167,17 @@ async def async_autosetup_sonos(async_setup_sonos):
await async_setup_sonos() await async_setup_sonos()
def reset_sonos_alarms(alarm_event: SonosMockEvent) -> None:
"""Reset the Sonos alarms to a known state."""
sonos_alarms = Alarms()
sonos_alarms.alarms = {}
sonos_alarms._last_zone_used = None
sonos_alarms._last_alarm_list_version = None
sonos_alarms.last_uid = None
sonos_alarms.last_id = 0
alarm_event.variables["alarm_list_version"] = "RINCON_test:0"
@pytest.fixture @pytest.fixture
def async_setup_sonos( def async_setup_sonos(
hass: HomeAssistant, config_entry: MockConfigEntry, fire_zgs_event, alarm_event hass: HomeAssistant, config_entry: MockConfigEntry, fire_zgs_event, alarm_event
@@ -175,9 +186,7 @@ def async_setup_sonos(
async def _wrapper(): async def _wrapper():
config_entry.add_to_hass(hass) config_entry.add_to_hass(hass)
sonos_alarms = Alarms() reset_sonos_alarms(alarm_event)
sonos_alarms.last_alarm_list_version = "RINCON_test:0"
alarm_event.variables["alarm_list_version"] = "RINCON_test:0"
assert await hass.config_entries.async_setup(config_entry.entry_id) assert await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done(wait_background_tasks=True) await hass.async_block_till_done(wait_background_tasks=True)
await fire_zgs_event() await fire_zgs_event()
@@ -851,11 +860,15 @@ def zgs_event_fixture(
@pytest.fixture(name="sonos_setup_two_speakers") @pytest.fixture(name="sonos_setup_two_speakers")
async def sonos_setup_two_speakers( async def sonos_setup_two_speakers(
hass: HomeAssistant, soco_factory: SoCoMockFactory hass: HomeAssistant,
soco_factory: SoCoMockFactory,
alarm_event: SonosMockEvent,
) -> list[MockSoCo]: ) -> list[MockSoCo]:
"""Set up home assistant with two Sonos Speakers.""" """Set up home assistant with two Sonos Speakers."""
soco_lr = soco_factory.cache_mock(MockSoCo(), "10.10.10.1", "Living Room") soco_lr = soco_factory.cache_mock(MockSoCo(), "10.10.10.1", "Living Room")
soco_br = soco_factory.cache_mock(MockSoCo(), "10.10.10.2", "Bedroom") soco_br = soco_factory.cache_mock(MockSoCo(), "10.10.10.2", "Bedroom")
reset_sonos_alarms(alarm_event)
await async_setup_component( await async_setup_component(
hass, hass,
DOMAIN, DOMAIN,

View File

@@ -271,8 +271,6 @@ async def test_alarm_create_delete(
async def test_alarm_change_device( async def test_alarm_change_device(
hass: HomeAssistant, hass: HomeAssistant,
async_setup_sonos,
soco: MockSoCo,
alarm_clock: SonosMockService, alarm_clock: SonosMockService,
alarm_clock_extended: SonosMockService, alarm_clock_extended: SonosMockService,
alarm_event: SonosMockEvent, alarm_event: SonosMockEvent,
@@ -294,7 +292,7 @@ async def test_alarm_change_device(
alarm_dict["CurrentAlarmList"] = alarm_dict["CurrentAlarmList"].replace( alarm_dict["CurrentAlarmList"] = alarm_dict["CurrentAlarmList"].replace(
"RINCON_test", f"{soco_lr.uid}" "RINCON_test", f"{soco_lr.uid}"
) )
alarm_dict["CurrentAlarmListVersion"] = f"{soco_lr.uid}:900" alarm_dict["CurrentAlarmListVersion"] = "RINCON_test:900"
soco_lr.alarmClock.ListAlarms.return_value = alarm_dict soco_lr.alarmClock.ListAlarms.return_value = alarm_dict
soco_br = soco_factory.cache_mock(MockSoCo(), "10.10.10.2", "Bedroom") soco_br = soco_factory.cache_mock(MockSoCo(), "10.10.10.2", "Bedroom")
await async_setup_component( await async_setup_component(
@@ -327,7 +325,7 @@ async def test_alarm_change_device(
alarm_clock.ListAlarms.return_value = alarm_update alarm_clock.ListAlarms.return_value = alarm_update
# Update the alarm_list_version so it gets processed. # Update the alarm_list_version so it gets processed.
alarm_event.variables["alarm_list_version"] = f"{soco_br.uid}:1000" alarm_event.variables["alarm_list_version"] = "RINCON_test:1000"
alarm_update["CurrentAlarmListVersion"] = alarm_event.increment_variable( alarm_update["CurrentAlarmListVersion"] = alarm_event.increment_variable(
"alarm_list_version" "alarm_list_version"
) )