77
88from freezegun .api import FrozenDateTimeFactory
99import pytest
10- from reolink_aio .api import Chime
1110from reolink_aio .exceptions import (
1211 CredentialsInvalidError ,
1312 LoginPrivacyModeError ,
@@ -270,22 +269,25 @@ async def test_removing_disconnected_cams(
270269
271270
272271@pytest .mark .parametrize (
273- ("attr" , "value" , "expected_models" ),
272+ ("attr" , "value" , "expected_models" , "expected_remove_call_count" ),
274273 [
275274 (
276275 None ,
277276 None ,
278277 [TEST_HOST_MODEL , TEST_CAM_MODEL , CHIME_MODEL ],
278+ 1 ,
279279 ),
280280 (
281281 "connect_state" ,
282282 - 1 ,
283283 [TEST_HOST_MODEL , TEST_CAM_MODEL ],
284+ 0 ,
284285 ),
285286 (
286287 "remove" ,
287288 - 1 ,
288289 [TEST_HOST_MODEL , TEST_CAM_MODEL ],
290+ 1 ,
289291 ),
290292 ],
291293)
@@ -294,12 +296,13 @@ async def test_removing_chime(
294296 hass_ws_client : WebSocketGenerator ,
295297 config_entry : MockConfigEntry ,
296298 reolink_host : MagicMock ,
297- reolink_chime : Chime ,
299+ reolink_chime : MagicMock ,
298300 device_registry : dr .DeviceRegistry ,
299301 entity_registry : er .EntityRegistry ,
300302 attr : str | None ,
301303 value : Any ,
302304 expected_models : list [str ],
305+ expected_remove_call_count : int ,
303306) -> None :
304307 """Test removing a chime."""
305308 reolink_host .channels = [0 ]
@@ -324,7 +327,7 @@ async def test_remove_chime(*args, **key_args):
324327 """Remove chime."""
325328 reolink_chime .connect_state = - 1
326329
327- reolink_chime .remove = test_remove_chime
330+ reolink_chime .remove = AsyncMock ( side_effect = test_remove_chime )
328331 elif attr is not None :
329332 setattr (reolink_chime , attr , value )
330333
@@ -334,6 +337,7 @@ async def test_remove_chime(*args, **key_args):
334337 if device .model == CHIME_MODEL :
335338 response = await client .remove_device (device .id , config_entry .entry_id )
336339 assert response ["success" ] == expected_success
340+ assert reolink_chime .remove .call_count == expected_remove_call_count
337341
338342 device_entries = dr .async_entries_for_config_entry (
339343 device_registry , config_entry .entry_id
0 commit comments