Raise if trying to store mocks in storage (#63622)
parent
d8ba90fb8a
commit
689504af86
|
@ -1060,8 +1060,9 @@ def mock_storage(data=None):
|
||||||
|
|
||||||
def mock_write_data(store, path, data_to_write):
|
def mock_write_data(store, path, data_to_write):
|
||||||
"""Mock version of write data."""
|
"""Mock version of write data."""
|
||||||
_LOGGER.info("Writing data to %s: %s", store.key, data_to_write)
|
|
||||||
# To ensure that the data can be serialized
|
# To ensure that the data can be serialized
|
||||||
|
_LOGGER.info("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))
|
data[store.key] = json.loads(json.dumps(data_to_write, cls=store._encoder))
|
||||||
|
|
||||||
async def mock_remove(store):
|
async def mock_remove(store):
|
||||||
|
@ -1245,3 +1246,17 @@ def assert_lists_same(a, b):
|
||||||
assert collections.Counter([hashdict(i) for i in a]) == collections.Counter(
|
assert collections.Counter([hashdict(i) for i in a]) == collections.Counter(
|
||||||
[hashdict(i) for i in b]
|
[hashdict(i) for i in b]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def raise_contains_mocks(val):
|
||||||
|
"""Raise for mocks."""
|
||||||
|
if isinstance(val, Mock):
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
if isinstance(val, dict):
|
||||||
|
for dict_value in val.values():
|
||||||
|
raise_contains_mocks(dict_value)
|
||||||
|
|
||||||
|
if isinstance(val, list):
|
||||||
|
for dict_value in val:
|
||||||
|
raise_contains_mocks(dict_value)
|
||||||
|
|
|
@ -73,7 +73,9 @@ async def test_custom_encoder(hass):
|
||||||
return "9"
|
return "9"
|
||||||
|
|
||||||
store = storage.Store(hass, MOCK_VERSION, MOCK_KEY, encoder=JSONEncoder)
|
store = storage.Store(hass, MOCK_VERSION, MOCK_KEY, encoder=JSONEncoder)
|
||||||
|
with pytest.raises(ValueError):
|
||||||
await store.async_save(Mock())
|
await store.async_save(Mock())
|
||||||
|
await store.async_save(object())
|
||||||
data = await store.async_load()
|
data = await store.async_load()
|
||||||
assert data == "9"
|
assert data == "9"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue