mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Correct typing on hass_storage fixure (#87986)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This commit is contained in:
@@ -3,7 +3,14 @@ from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from collections import OrderedDict
|
||||
from collections.abc import Awaitable, Callable, Collection, Mapping, Sequence
|
||||
from collections.abc import (
|
||||
Awaitable,
|
||||
Callable,
|
||||
Collection,
|
||||
Generator,
|
||||
Mapping,
|
||||
Sequence,
|
||||
)
|
||||
from contextlib import contextmanager
|
||||
from datetime import datetime, timedelta, timezone
|
||||
import functools as ft
|
||||
@@ -1205,7 +1212,9 @@ class MockEntity(entity.Entity):
|
||||
|
||||
|
||||
@contextmanager
|
||||
def mock_storage(data=None):
|
||||
def mock_storage(
|
||||
data: dict[str, Any] | None = None
|
||||
) -> Generator[dict[str, Any], None, None]:
|
||||
"""Mock storage.
|
||||
|
||||
Data is a dict {'key': {'version': version, 'data': data}}
|
||||
@@ -1217,7 +1226,9 @@ def mock_storage(data=None):
|
||||
|
||||
orig_load = storage.Store._async_load
|
||||
|
||||
async def mock_async_load(store):
|
||||
async def mock_async_load(
|
||||
store: storage.Store,
|
||||
) -> dict[str, Any] | list[Any] | None:
|
||||
"""Mock version of load."""
|
||||
if store._data is None:
|
||||
# No data to load
|
||||
@@ -1237,14 +1248,16 @@ def mock_storage(data=None):
|
||||
_LOGGER.debug("Loading data for %s: %s", store.key, loaded)
|
||||
return loaded
|
||||
|
||||
async def mock_write_data(store, path, data_to_write):
|
||||
async def mock_write_data(
|
||||
store: storage.Store, path: str, data_to_write: dict[str, Any]
|
||||
) -> None:
|
||||
"""Mock version of write data."""
|
||||
# To ensure that the data can be serialized
|
||||
_LOGGER.debug("Writing data to %s: %s", store.key, data_to_write)
|
||||
raise_contains_mocks(data_to_write)
|
||||
data[store.key] = json.loads(json.dumps(data_to_write, cls=store._encoder))
|
||||
|
||||
async def mock_remove(store):
|
||||
async def mock_remove(store: storage.Store) -> None:
|
||||
"""Remove data."""
|
||||
data.pop(store.key, None)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user