Avoid logging a warning when replacing an ignored config entry (#142114)

Replacing an ignored config entry with one from the user
flow should not generate a warning. We should only warn
if we are replacing a usable config entry.

Followup to adjust the warning added in #130567
cc @epenet
This commit is contained in:
J. Nick Koston 2025-04-02 21:38:50 -10:00 committed by Franck Nijhof
parent 281beecb05
commit fe65579df8
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
2 changed files with 11 additions and 4 deletions

View File

@ -1626,7 +1626,11 @@ class ConfigEntriesFlowManager(
result["handler"], flow.unique_id
)
if existing_entry is not None and flow.handler != "mobile_app":
if (
existing_entry is not None
and flow.handler != "mobile_app"
and existing_entry.source != SOURCE_IGNORE
):
# This causes the old entry to be removed and replaced, when the flow
# should instead be aborted.
# In case of manual flows, integrations should implement options, reauth,

View File

@ -8883,15 +8883,17 @@ async def test_add_description_placeholder_automatically_not_overwrites(
@pytest.mark.parametrize(
("domain", "expected_log"),
("domain", "source", "expected_log"),
[
("some_integration", True),
("mobile_app", False),
("some_integration", config_entries.SOURCE_USER, True),
("some_integration", config_entries.SOURCE_IGNORE, False),
("mobile_app", config_entries.SOURCE_USER, False),
],
)
async def test_create_entry_existing_unique_id(
hass: HomeAssistant,
domain: str,
source: str,
expected_log: bool,
caplog: pytest.LogCaptureFixture,
) -> None:
@ -8902,6 +8904,7 @@ async def test_create_entry_existing_unique_id(
entry_id="01J915Q6T9F6G5V0QJX6HBC94T",
data={"host": "any", "port": 123},
unique_id="mock-unique-id",
source=source,
)
entry.add_to_hass(hass)