|
@@ -290,7 +290,7 @@ async def test_check_in_calls_wifi_key(hass: HomeAssistant, coordinator: RoomCal
|
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -308,7 +308,7 @@ async def test_check_in_calls_wifi_key(hass: HomeAssistant, coordinator: RoomCal
|
|
|
|
|
|
|
|
async def test_check_in_skips_wifi_when_ssid_none(coordinator: RoomCalCoordinator):
|
|
async def test_check_in_skips_wifi_when_ssid_none(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_NEXT, ReservationData(wifi_ssid=None, wifi_key="securepass"))
|
|
await coordinator.store.async_set(STORE_NEXT, ReservationData(wifi_ssid=None, wifi_key="securepass"))
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
|
|
|
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
|
await coordinator._async_do_check_in()
|
|
await coordinator._async_do_check_in()
|
|
@@ -318,7 +318,7 @@ async def test_check_in_skips_wifi_when_ssid_none(coordinator: RoomCalCoordinato
|
|
|
|
|
|
|
|
async def test_check_in_skips_wifi_when_key_none(coordinator: RoomCalCoordinator):
|
|
async def test_check_in_skips_wifi_when_key_none(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_NEXT, ReservationData(wifi_ssid="GuestNet", wifi_key=None))
|
|
await coordinator.store.async_set(STORE_NEXT, ReservationData(wifi_ssid="GuestNet", wifi_key=None))
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
|
|
|
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
|
await coordinator._async_do_check_in()
|
|
await coordinator._async_do_check_in()
|
|
@@ -330,7 +330,7 @@ async def test_check_in_skips_wifi_when_use_unifi_off(hass: HomeAssistant, coord
|
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -351,7 +351,7 @@ async def test_check_in_wifi_error_still_activates_guest_mode(coordinator: RoomC
|
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_NEXT, _WIFI_NEXT)
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -373,7 +373,7 @@ async def test_check_out_disables_ssid(hass: HomeAssistant, coordinator: RoomCal
|
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -387,7 +387,7 @@ async def test_check_out_disables_ssid(hass: HomeAssistant, coordinator: RoomCal
|
|
|
|
|
|
|
|
async def test_check_out_skips_ssid_when_ssid_none(coordinator: RoomCalCoordinator):
|
|
async def test_check_out_skips_ssid_when_ssid_none(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_CURRENT, ReservationData(wifi_ssid=None))
|
|
await coordinator.store.async_set(STORE_CURRENT, ReservationData(wifi_ssid=None))
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
|
|
|
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_ssid_enabled", new_callable=AsyncMock) as mock_ssid:
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_ssid_enabled", new_callable=AsyncMock) as mock_ssid:
|
|
|
await coordinator._async_do_check_out()
|
|
await coordinator._async_do_check_out()
|
|
@@ -397,7 +397,7 @@ async def test_check_out_skips_ssid_when_ssid_none(coordinator: RoomCalCoordinat
|
|
|
|
|
|
|
|
async def test_check_out_skips_ssid_when_use_unifi_off(coordinator: RoomCalCoordinator):
|
|
async def test_check_out_skips_ssid_when_use_unifi_off(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -413,7 +413,7 @@ async def test_check_out_ssid_error_still_deactivates_guest_mode(coordinator: Ro
|
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
await coordinator.store.async_set(STORE_CURRENT, _WIFI_NEXT)
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -433,13 +433,13 @@ _WIFI_OVERRIDE = ReservationData(guest_name="WiFi Guest", wifi_ssid="GuestNet",
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_sets_current_in_data(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_sets_current_in_data(coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
assert coordinator.data.current.guest_name == "Override Guest"
|
|
assert coordinator.data.current.guest_name == "Override Guest"
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_sets_override_active_flag(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_sets_override_active_flag(coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
assert coordinator.data.override_active is True
|
|
assert coordinator.data.override_active is True
|
|
|
|
|
|
|
@@ -447,7 +447,7 @@ async def test_start_override_sets_override_active_flag(coordinator: RoomCalCoor
|
|
|
async def test_start_override_cancels_mode_sync(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_cancels_mode_sync(coordinator: RoomCalCoordinator):
|
|
|
cancel1, cancel2 = MagicMock(), MagicMock()
|
|
cancel1, cancel2 = MagicMock(), MagicMock()
|
|
|
coordinator._mode_sync_handles = [cancel1, cancel2]
|
|
coordinator._mode_sync_handles = [cancel1, cancel2]
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
cancel1.assert_called_once()
|
|
cancel1.assert_called_once()
|
|
|
cancel2.assert_called_once()
|
|
cancel2.assert_called_once()
|
|
@@ -457,7 +457,7 @@ async def test_start_override_cancels_mode_sync(coordinator: RoomCalCoordinator)
|
|
|
async def test_start_override_turns_on_guest_mode(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_turns_on_guest_mode(coordinator: RoomCalCoordinator):
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
with patch.object(coordinator, "_is_mode_sync_on", return_value=True):
|
|
with patch.object(coordinator, "_is_mode_sync_on", return_value=True):
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
mock_switch.async_turn_on.assert_awaited_once()
|
|
mock_switch.async_turn_on.assert_awaited_once()
|
|
@@ -466,15 +466,15 @@ async def test_start_override_turns_on_guest_mode(coordinator: RoomCalCoordinato
|
|
|
async def test_start_override_does_not_turn_on_guest_mode_when_mode_sync_off(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_does_not_turn_on_guest_mode_when_mode_sync_off(coordinator: RoomCalCoordinator):
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
with patch.object(coordinator, "_is_mode_sync_on", return_value=False):
|
|
with patch.object(coordinator, "_is_mode_sync_on", return_value=False):
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
mock_switch.async_turn_on.assert_not_awaited()
|
|
mock_switch.async_turn_on.assert_not_awaited()
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_calls_wifi_when_credentials_present(hass: HomeAssistant, coordinator: RoomCalCoordinator):
|
|
async def test_start_override_calls_wifi_when_credentials_present(hass: HomeAssistant, coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = MagicMock()
|
|
|
|
|
- coordinator._guest_mode_switch.async_turn_on = AsyncMock()
|
|
|
|
|
|
|
+ coordinator._room_state_switch = MagicMock()
|
|
|
|
|
+ coordinator._room_state_switch.async_turn_on = AsyncMock()
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
|
patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi,
|
|
patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi,
|
|
@@ -484,7 +484,7 @@ async def test_start_override_calls_wifi_when_credentials_present(hass: HomeAssi
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_skips_wifi_when_mode_sync_off(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_skips_wifi_when_mode_sync_off(coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=False),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=False),
|
|
|
patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi,
|
|
patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi,
|
|
@@ -494,7 +494,7 @@ async def test_start_override_skips_wifi_when_mode_sync_off(coordinator: RoomCal
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_skips_wifi_when_ssid_missing(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_skips_wifi_when_ssid_missing(coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
no_ssid = ReservationData(wifi_ssid=None, wifi_key="secret")
|
|
no_ssid = ReservationData(wifi_ssid=None, wifi_key="secret")
|
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
with patch("custom_components.room_cal_ha.wifi.async_set_wifi_key", new_callable=AsyncMock) as mock_wifi:
|
|
|
await coordinator.async_start_override(OverrideData(current=no_ssid))
|
|
await coordinator.async_start_override(OverrideData(current=no_ssid))
|
|
@@ -503,14 +503,14 @@ async def test_start_override_skips_wifi_when_ssid_missing(coordinator: RoomCalC
|
|
|
|
|
|
|
|
async def test_start_override_uses_store_next_when_override_next_is_none(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_uses_store_next_when_override_next_is_none(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_NEXT, SAMPLE)
|
|
await coordinator.store.async_set(STORE_NEXT, SAMPLE)
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES))
|
|
|
assert coordinator.data.next.guest_name == "Alice"
|
|
assert coordinator.data.next.guest_name == "Alice"
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_start_override_uses_override_next_when_provided(coordinator: RoomCalCoordinator):
|
|
async def test_start_override_uses_override_next_when_provided(coordinator: RoomCalCoordinator):
|
|
|
override_next = ReservationData(guest_name="Override Next")
|
|
override_next = ReservationData(guest_name="Override Next")
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES, next=override_next))
|
|
await coordinator.async_start_override(OverrideData(current=_OVERRIDE_RES, next=override_next))
|
|
|
assert coordinator.data.next.guest_name == "Override Next"
|
|
assert coordinator.data.next.guest_name == "Override Next"
|
|
|
|
|
|
|
@@ -601,7 +601,7 @@ async def test_start_override_applies_defaults_to_store_next(hass: HomeAssistant
|
|
|
|
|
|
|
|
|
|
|
|
|
async def test_end_override_clears_override_active(coordinator: RoomCalCoordinator):
|
|
async def test_end_override_clears_override_active(coordinator: RoomCalCoordinator):
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
coordinator._override = OverrideData(current=_OVERRIDE_RES)
|
|
coordinator._override = OverrideData(current=_OVERRIDE_RES)
|
|
|
await coordinator.async_end_override()
|
|
await coordinator.async_end_override()
|
|
|
assert coordinator.data.override_active is False
|
|
assert coordinator.data.override_active is False
|
|
@@ -609,7 +609,7 @@ async def test_end_override_clears_override_active(coordinator: RoomCalCoordinat
|
|
|
|
|
|
|
|
async def test_end_override_restores_store_current(coordinator: RoomCalCoordinator):
|
|
async def test_end_override_restores_store_current(coordinator: RoomCalCoordinator):
|
|
|
await coordinator.store.async_set(STORE_CURRENT, SAMPLE)
|
|
await coordinator.store.async_set(STORE_CURRENT, SAMPLE)
|
|
|
- coordinator._guest_mode_switch = None
|
|
|
|
|
|
|
+ coordinator._room_state_switch = None
|
|
|
coordinator._override = OverrideData(current=_OVERRIDE_RES)
|
|
coordinator._override = OverrideData(current=_OVERRIDE_RES)
|
|
|
await coordinator.async_end_override()
|
|
await coordinator.async_end_override()
|
|
|
assert coordinator.data.current.guest_name == "Alice"
|
|
assert coordinator.data.current.guest_name == "Alice"
|
|
@@ -709,7 +709,7 @@ async def test_reconcile_active_current_turns_on_guest_mode(coordinator: RoomCal
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -727,7 +727,7 @@ async def test_reconcile_elapsed_current_clears_store_and_turns_off_guest_mode(c
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=True),
|
|
@@ -757,7 +757,7 @@ async def test_reconcile_does_not_touch_guest_mode_when_mode_sync_off(coordinato
|
|
|
mock_switch = MagicMock()
|
|
mock_switch = MagicMock()
|
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
mock_switch.async_turn_on = AsyncMock()
|
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
mock_switch.async_turn_off = AsyncMock()
|
|
|
- coordinator._guest_mode_switch = mock_switch
|
|
|
|
|
|
|
+ coordinator._room_state_switch = mock_switch
|
|
|
|
|
|
|
|
with (
|
|
with (
|
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=False),
|
|
patch.object(coordinator, "_is_mode_sync_on", return_value=False),
|