Skip to content

Commit 2c8fc67

Browse files
authored
Fix evohome failing to start with 'NoneType' object has no attribute 'get' (#129222)
1 parent 9b3ed3e commit 2c8fc67

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

homeassistant/components/evohome/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ async def _load_auth_tokens(self, username: str) -> None:
176176
):
177177
app_storage[ACCESS_TOKEN_EXPIRES] = dt_aware_to_naive(expires)
178178

179-
user_data: dict[str, str] = app_storage.pop(USER_DATA, {})
179+
user_data: dict[str, str] = app_storage.pop(USER_DATA, {}) or {}
180180

181181
self.session_id = user_data.get(SZ_SESSION_ID)
182182
self._tokens = app_storage

tests/components/evohome/test_storage.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,17 @@ def dt_pair(dt_dtm: datetime) -> tuple[datetime, str]:
5555
USERNAME_DIFF: Final = f"not_{USERNAME}"
5656
USERNAME_SAME: Final = USERNAME
5757

58+
_TEST_STORAGE_BASE: Final[_TokenStoreT] = {
59+
SZ_USERNAME: USERNAME_SAME,
60+
SZ_REFRESH_TOKEN: REFRESH_TOKEN,
61+
SZ_ACCESS_TOKEN: ACCESS_TOKEN,
62+
SZ_ACCESS_TOKEN_EXPIRES: ACCESS_TOKEN_EXP_STR,
63+
}
64+
5865
TEST_STORAGE_DATA: Final[dict[str, _TokenStoreT]] = {
59-
"sans_session_id": {
60-
SZ_USERNAME: USERNAME_SAME,
61-
SZ_REFRESH_TOKEN: REFRESH_TOKEN,
62-
SZ_ACCESS_TOKEN: ACCESS_TOKEN,
63-
SZ_ACCESS_TOKEN_EXPIRES: ACCESS_TOKEN_EXP_STR,
64-
},
65-
"with_session_id": {
66-
SZ_USERNAME: USERNAME_SAME,
67-
SZ_REFRESH_TOKEN: REFRESH_TOKEN,
68-
SZ_ACCESS_TOKEN: ACCESS_TOKEN,
69-
SZ_ACCESS_TOKEN_EXPIRES: ACCESS_TOKEN_EXP_STR,
70-
SZ_USER_DATA: {"sessionId": SESSION_ID},
71-
},
66+
"sans_session_id": _TEST_STORAGE_BASE,
67+
"null_session_id": _TEST_STORAGE_BASE | {SZ_USER_DATA: None}, # type: ignore[dict-item]
68+
"with_session_id": _TEST_STORAGE_BASE | {SZ_USER_DATA: {"sessionId": SESSION_ID}},
7269
}
7370

7471
TEST_STORAGE_NULL: Final[dict[str, _EmptyStoreT | None]] = {

0 commit comments

Comments
 (0)