mirror of
https://github.com/home-assistant/core.git
synced 2025-11-14 05:20:17 +00:00
Ask for permission to disable Reolink privacy mode during config flow (#136511)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
import json
|
||||
from typing import Any
|
||||
from unittest.mock import ANY, AsyncMock, MagicMock, call
|
||||
from unittest.mock import ANY, AsyncMock, MagicMock, call, patch
|
||||
|
||||
from aiohttp import ClientSession
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
@@ -11,6 +11,7 @@ from reolink_aio.exceptions import (
|
||||
ApiError,
|
||||
CredentialsInvalidError,
|
||||
LoginFirmwareError,
|
||||
LoginPrivacyModeError,
|
||||
ReolinkError,
|
||||
)
|
||||
|
||||
@@ -88,6 +89,59 @@ async def test_config_flow_manual_success(
|
||||
assert result["result"].unique_id == TEST_MAC
|
||||
|
||||
|
||||
async def test_config_flow_privacy_success(
|
||||
hass: HomeAssistant, reolink_connect: MagicMock, mock_setup_entry: MagicMock
|
||||
) -> None:
|
||||
"""Successful flow when privacy mode is turned on."""
|
||||
reolink_connect.baichuan.privacy_mode.return_value = True
|
||||
reolink_connect.get_host_data.side_effect = LoginPrivacyModeError("Test error")
|
||||
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||
)
|
||||
|
||||
assert result["type"] is FlowResultType.FORM
|
||||
assert result["step_id"] == "user"
|
||||
assert result["errors"] == {}
|
||||
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"],
|
||||
{
|
||||
CONF_USERNAME: TEST_USERNAME,
|
||||
CONF_PASSWORD: TEST_PASSWORD,
|
||||
CONF_HOST: TEST_HOST,
|
||||
},
|
||||
)
|
||||
|
||||
assert result["type"] is FlowResultType.FORM
|
||||
assert result["step_id"] == "privacy"
|
||||
assert result["errors"] is None
|
||||
|
||||
assert reolink_connect.baichuan.set_privacy_mode.call_count == 0
|
||||
reolink_connect.get_host_data.reset_mock(side_effect=True)
|
||||
|
||||
with patch("homeassistant.components.reolink.config_flow.API_STARTUP_TIME", new=0):
|
||||
result = await hass.config_entries.flow.async_configure(result["flow_id"], {})
|
||||
|
||||
assert reolink_connect.baichuan.set_privacy_mode.call_count == 1
|
||||
|
||||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["title"] == TEST_NVR_NAME
|
||||
assert result["data"] == {
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_USERNAME: TEST_USERNAME,
|
||||
CONF_PASSWORD: TEST_PASSWORD,
|
||||
CONF_PORT: TEST_PORT,
|
||||
CONF_USE_HTTPS: TEST_USE_HTTPS,
|
||||
}
|
||||
assert result["options"] == {
|
||||
CONF_PROTOCOL: DEFAULT_PROTOCOL,
|
||||
}
|
||||
assert result["result"].unique_id == TEST_MAC
|
||||
|
||||
reolink_connect.baichuan.privacy_mode.return_value = False
|
||||
|
||||
|
||||
async def test_config_flow_errors(
|
||||
hass: HomeAssistant, reolink_connect: MagicMock, mock_setup_entry: MagicMock
|
||||
) -> None:
|
||||
|
||||
Reference in New Issue
Block a user