mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 17:57:55 +00:00
Fix Tami4 device name is None (#123156)
Co-authored-by: Robert Resch <robert@resch.dev>
This commit is contained in:
parent
9414e6d472
commit
2000db57c8
@ -82,8 +82,11 @@ class Tami4ConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||
_LOGGER.exception("Unexpected exception")
|
||||
errors["base"] = "unknown"
|
||||
else:
|
||||
device_name = api.device_metadata.name
|
||||
if device_name is None:
|
||||
device_name = "Tami4"
|
||||
return self.async_create_entry(
|
||||
title=api.device_metadata.name,
|
||||
title=device_name,
|
||||
data={CONF_REFRESH_TOKEN: refresh_token},
|
||||
)
|
||||
|
||||
|
@ -60,6 +60,31 @@ def mock__get_devices_metadata(request: pytest.FixtureRequest) -> Generator[None
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock__get_devices_metadata_no_name(
|
||||
request: pytest.FixtureRequest,
|
||||
) -> Generator[None]:
|
||||
"""Fixture to mock _get_devices which makes a call to the API."""
|
||||
|
||||
side_effect = getattr(request, "param", None)
|
||||
|
||||
device_metadata = DeviceMetadata(
|
||||
id=1,
|
||||
name=None,
|
||||
connected=True,
|
||||
psn="psn",
|
||||
type="type",
|
||||
device_firmware="v1.1",
|
||||
)
|
||||
|
||||
with patch(
|
||||
"Tami4EdgeAPI.Tami4EdgeAPI.Tami4EdgeAPI._get_devices_metadata",
|
||||
return_value=[device_metadata],
|
||||
side_effect=side_effect,
|
||||
):
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_get_device(
|
||||
request: pytest.FixtureRequest,
|
||||
|
@ -120,6 +120,39 @@ async def test_step_otp_valid(
|
||||
assert "refresh_token" in result["data"]
|
||||
|
||||
|
||||
@pytest.mark.usefixtures(
|
||||
"mock_setup_entry",
|
||||
"mock_request_otp",
|
||||
"mock_submit_otp",
|
||||
"mock__get_devices_metadata_no_name",
|
||||
)
|
||||
async def test_step_otp_valid_device_no_name(hass: HomeAssistant) -> None:
|
||||
"""Test user step with valid phone number."""
|
||||
|
||||
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"],
|
||||
user_input={CONF_PHONE: "+972555555555"},
|
||||
)
|
||||
assert result["type"] is FlowResultType.FORM
|
||||
assert result["step_id"] == "otp"
|
||||
assert result["errors"] == {}
|
||||
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"],
|
||||
user_input={"otp": "123456"},
|
||||
)
|
||||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["title"] == "Tami4"
|
||||
assert "refresh_token" in result["data"]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("mock_submit_otp", "expected_error"),
|
||||
[
|
||||
|
Loading…
x
Reference in New Issue
Block a user