def disable_motion_detection(self) -> None: """Disable motion detection.""" try: self.coordinator.ezviz_client.set_camera_defence(self._serial, 0) except InvalidHost as err: raise InvalidHost("Error disabling motion detection") from err
def enable_motion_detection(self): """Enable motion detection in camera.""" try: self.coordinator.ezviz_client.set_camera_defence(self._serial, 1) except InvalidHost as err: raise InvalidHost("Error enabling motion detection") from err
async def test_async_step_reauth_exception(hass, ezviz_config_flow): """Test the reauth step exceptions.""" result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_USER}) assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "user" assert result["errors"] == {} with _patch_async_setup_entry() as mock_setup_entry: result = await hass.config_entries.flow.async_configure( result["flow_id"], USER_INPUT_VALIDATE, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_CREATE_ENTRY assert result["title"] == "test-username" assert result["data"] == {**API_LOGIN_RETURN_VALIDATE} assert len(mock_setup_entry.mock_calls) == 1 result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_REAUTH}, data=USER_INPUT_VALIDATE) assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "reauth_confirm" assert result["errors"] == {} ezviz_config_flow.side_effect = InvalidURL() result = await hass.config_entries.flow.async_configure( result["flow_id"], { CONF_USERNAME: "******", CONF_PASSWORD: "******", }, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "reauth_confirm" assert result["errors"] == {"base": "invalid_host"} ezviz_config_flow.side_effect = InvalidHost() result = await hass.config_entries.flow.async_configure( result["flow_id"], { CONF_USERNAME: "******", CONF_PASSWORD: "******", }, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "reauth_confirm" assert result["errors"] == {"base": "cannot_connect"} ezviz_config_flow.side_effect = EzvizAuthVerificationCode() result = await hass.config_entries.flow.async_configure( result["flow_id"], { CONF_USERNAME: "******", CONF_PASSWORD: "******", }, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "reauth_confirm" assert result["errors"] == {"base": "mfa_required"} ezviz_config_flow.side_effect = PyEzvizError() result = await hass.config_entries.flow.async_configure( result["flow_id"], { CONF_USERNAME: "******", CONF_PASSWORD: "******", }, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "reauth_confirm" assert result["errors"] == {"base": "invalid_auth"} ezviz_config_flow.side_effect = Exception() result = await hass.config_entries.flow.async_configure( result["flow_id"], { CONF_USERNAME: "******", CONF_PASSWORD: "******", }, ) await hass.async_block_till_done() assert result["type"] == RESULT_TYPE_ABORT assert result["reason"] == "unknown"