Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Erik
0fec78ea75 Don't allow adding a config entry with colliding unique_id 2024-11-08 08:47:11 +01:00

View file

@ -1680,9 +1680,12 @@ class ConfigEntryItems(UserDict[str, ConfigEntry]):
self.check_unique_id(entry)
self._domain_index.setdefault(entry.domain, []).append(entry)
if entry.unique_id is not None:
self._domain_unique_id_index.setdefault(entry.domain, {}).setdefault(
entry.unique_id, []
).append(entry)
domain_entries = self._domain_unique_id_index.setdefault(entry.domain, {})
if entry.unique_id in domain_entries:
raise ValueError(
f"{entry.domain} config entry with unique id {entry.unique_id} already exists"
)
domain_entries.setdefault(entry.unique_id, []).append(entry)
def _unindex_entry(self, entry_id: str) -> None:
"""Unindex an entry."""