diff --git a/pyaml/tuning_tools/response_matrix_data.py b/pyaml/tuning_tools/response_matrix_data.py index ce9fd4d4..0a4a222f 100644 --- a/pyaml/tuning_tools/response_matrix_data.py +++ b/pyaml/tuning_tools/response_matrix_data.py @@ -2,6 +2,7 @@ from pathlib import Path from pyaml.configuration.factory import Factory +from pyaml.validation import SchemaValidator from .. import PyAMLException from ..configuration.fileloader import load @@ -31,7 +32,6 @@ class ResponseMatrixData(DynamicValidation): matrix: list[list[float]] observable_names: list[str] variable_names: list[str] | None = None - type: str | None = None @staticmethod def load(filename: str) -> "ResponseMatrixData": @@ -55,6 +55,7 @@ def load(filename: str) -> "ResponseMatrixData": path = Path(filename) if path.exists(): config_dict = load(str(path.resolve())) + SchemaValidator.validate(config_dict) return Factory.build(config_dict, ignore_external=False) else: raise PyAMLException(f"{filename}: file not found") diff --git a/tests/tuning_tools/test_tuning_orm.py b/tests/tuning_tools/test_tuning_orm.py index faa8def0..553bce16 100644 --- a/tests/tuning_tools/test_tuning_orm.py +++ b/tests/tuning_tools/test_tuning_orm.py @@ -1,4 +1,5 @@ import logging +import tempfile from pathlib import Path import numpy as np @@ -24,3 +25,10 @@ def test_tuning_orm(): orm_data = orm.get() orm_shape = np.array(orm_data["matrix"]).shape assert orm_shape == (2 * len(bpms), 8) + + with tempfile.NamedTemporaryFile(mode="w", suffix=".json", prefix="orm_") as f: + # save file + orm.save(save_path=f.name) + + # load saved file + element_holder.orbit.load(f.name)