async def test_camera_ws_update(hass: HomeAssistant, ufp: MockUFPFixture, camera: ProtectCamera): """WS update updates camera entity.""" await init_entry(hass, ufp, [camera]) assert_entity_counts(hass, Platform.CAMERA, 2, 1) entity_id = "camera.test_camera_high" state = hass.states.get(entity_id) assert state and state.state == "idle" new_camera = camera.copy() new_camera.is_recording = True no_camera = camera.copy() no_camera.is_adopted = False ufp.api.bootstrap.cameras = {new_camera.id: new_camera} mock_msg = Mock() mock_msg.changed_data = {} mock_msg.new_obj = new_camera ufp.ws_msg(mock_msg) mock_msg = Mock() mock_msg.changed_data = {} mock_msg.new_obj = no_camera ufp.ws_msg(mock_msg) await hass.async_block_till_done() state = hass.states.get(entity_id) assert state and state.state == "recording"
async def test_play_audio(mock_talkback, camera_obj: Camera): camera_obj.feature_flags.has_speaker = True camera_obj._initial_data = camera_obj.dict() mock_instance = MockTalkback() mock_talkback.return_value = mock_instance await camera_obj.play_audio("test") mock_talkback.assert_called_with(camera_obj, "test", None) assert mock_instance.run_until_complete.called
async def test_adopt(hass: HomeAssistant, ufp: MockUFPFixture, camera: ProtectCamera): """Test setting up camera with no camera channels.""" camera1 = camera.copy() camera1.channels = [] await init_entry(hass, ufp, [camera1]) assert_entity_counts(hass, Platform.CAMERA, 0, 0) await remove_entities(hass, ufp, [camera1]) assert_entity_counts(hass, Platform.CAMERA, 0, 0) camera1.channels = [] await adopt_devices(hass, ufp, [camera1]) assert_entity_counts(hass, Platform.CAMERA, 0, 0) camera1.channels = camera.channels for channel in camera1.channels: channel._api = ufp.api mock_msg = Mock() mock_msg.changed_data = {"channels": camera.channels} mock_msg.new_obj = camera1 ufp.ws_msg(mock_msg) await hass.async_block_till_done() assert_entity_counts(hass, Platform.CAMERA, 2, 1) await remove_entities(hass, ufp, [camera1]) assert_entity_counts(hass, Platform.CAMERA, 0, 0) await adopt_devices(hass, ufp, [camera1]) assert_entity_counts(hass, Platform.CAMERA, 2, 1)