mirror of
https://github.com/home-assistant/core.git
synced 2025-11-09 02:49:40 +00:00
Inverse json import logic (#88099)
* Fix helpers and util * Adjust components * Move back errors * Add report * mypy * mypy * Assert deprecation messages * Move test_json_loads_object * Adjust tests * Fix rebase * Adjust pylint plugin * Fix plugin * Adjust references * Adjust backup tests
This commit is contained in:
@@ -15,6 +15,7 @@ from homeassistant.helpers.json import JSONEncoder as DefaultHASSJSONEncoder
|
||||
from homeassistant.util.json import (
|
||||
SerializationError,
|
||||
find_paths_unserializable_data,
|
||||
json_loads_object,
|
||||
load_json,
|
||||
save_json,
|
||||
)
|
||||
@@ -191,3 +192,40 @@ def test_find_unserializable_data() -> None:
|
||||
BadData(),
|
||||
dump=partial(dumps, cls=MockJSONEncoder),
|
||||
) == {"$(BadData).bla": bad_data}
|
||||
|
||||
|
||||
def test_json_loads_object() -> None:
|
||||
"""Test json_loads_object validates result."""
|
||||
assert json_loads_object('{"c":1.2}') == {"c": 1.2}
|
||||
with pytest.raises(
|
||||
ValueError, match="Expected JSON to be parsed as a dict got <class 'list'>"
|
||||
):
|
||||
json_loads_object("[]")
|
||||
with pytest.raises(
|
||||
ValueError, match="Expected JSON to be parsed as a dict got <class 'bool'>"
|
||||
):
|
||||
json_loads_object("true")
|
||||
with pytest.raises(
|
||||
ValueError, match="Expected JSON to be parsed as a dict got <class 'NoneType'>"
|
||||
):
|
||||
json_loads_object("null")
|
||||
|
||||
|
||||
async def test_deprecated_test_find_unserializable_data(
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test deprecated test_find_unserializable_data logs a warning."""
|
||||
find_paths_unserializable_data(1)
|
||||
assert (
|
||||
"uses find_paths_unserializable_data from homeassistant.util.json"
|
||||
in caplog.text
|
||||
)
|
||||
assert "should be updated to use homeassistant.helpers.json module" in caplog.text
|
||||
|
||||
|
||||
async def test_deprecated_save_json(caplog: pytest.LogCaptureFixture) -> None:
|
||||
"""Test deprecated save_json logs a warning."""
|
||||
fname = _path_for("test1")
|
||||
save_json(fname, TEST_JSON_A)
|
||||
assert "uses save_json from homeassistant.util.json" in caplog.text
|
||||
assert "should be updated to use homeassistant.helpers.json module" in caplog.text
|
||||
|
||||
Reference in New Issue
Block a user