Source code for ewokscore.tests.serialization.test_persistent

import json
import sys

from silx.io.dictdump import h5todict

from ...persistence.json import JsonProxy
from ...persistence.nexus import NexusProxy
from ...persistence.proxy import DataUri
from . import example_data
from .example_data import compare_hdf5
from .example_data import compare_json


[docs] def test_json_data_persistence(tmp_path): path = tmp_path / "data.json" if sys.platform == "win32": prefix = "json:///" else: prefix = "json://" uri = DataUri(f"{prefix}{path}", None) original_data = example_data.generate_example_data() proxy = JsonProxy(uri=uri) proxy.dump(original_data) deserialized_data = proxy.load() compare_json.assert_deserialized_data(deserialized_data, original_data) serialized_data = json.loads(path.read_text(encoding="utf-8")) compare_json.assert_serialized_data(serialized_data["data"], original_data)
[docs] def test_nexus_data_persistence(tmp_path): path = tmp_path / "data.h5" if sys.platform == "win32": prefix = "nexus:///" else: prefix = "nexus://" uri = DataUri(f"{prefix}{path}::/result", None) original_data = example_data.generate_example_data() proxy = NexusProxy(uri=uri) proxy.dump(original_data) deserialized_data = proxy.load() compare_hdf5.assert_deserialized_data(deserialized_data, original_data) serialized_data = h5todict(path, "/result", include_attributes=False) compare_hdf5.assert_serialized_data(serialized_data, original_data)