diff --git a/qiskit_experiments/framework/base_analysis.py b/qiskit_experiments/framework/base_analysis.py index 563ebd18da..7b9bfc8897 100644 --- a/qiskit_experiments/framework/base_analysis.py +++ b/qiskit_experiments/framework/base_analysis.py @@ -70,7 +70,7 @@ def config(self) -> AnalysisConfig: def from_config(cls, config: Union[AnalysisConfig, Dict]) -> "BaseAnalysis": """Initialize an analysis class from analysis config""" if isinstance(config, dict): - config = AnalysisConfig(**dict) + config = AnalysisConfig(**config) ret = cls(*config.args, **config.kwargs) if config.options: ret.set_options(**config.options) diff --git a/test/test_framework.py b/test/test_framework.py index d6d65bc9f6..6cee726bce 100644 --- a/test/test_framework.py +++ b/test/test_framework.py @@ -97,6 +97,14 @@ def test_analysis_from_config(self): loaded = FakeAnalysis.from_config(config) self.assertEqual(config, loaded.config()) + def test_analysis_from_dict_config(self): + """Test analysis config dataclass for dict type.""" + analysis = FakeAnalysis(arg1=10, arg2=20) + analysis.set_options(option1=False, option2=True) + config = analysis.config() + loaded = FakeAnalysis.from_config({"kwargs": config.kwargs, "options": config.options}) + self.assertEqual(config, loaded.config()) + def test_analysis_runtime_opts(self): """Test runtime options don't modify instance""" opts = {"opt1": False, "opt2": False}