diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py index b1ee626645d0027f44d1a2392e02ef332890010a..9f9d4419447c36cd0ab23e9236fd5fcd3985274e 100644 --- a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py +++ b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py @@ -8,7 +8,7 @@ class DummyDakotaCommunicator(BaseMCOCommunicator): def receive_from_mco(self): data = sys.stdin.read() values = list(map(float, data.split())) - value_names = [p.name for p in self.model.parameters] + value_names = [p.value_name for p in self.model.parameters] value_types = [p.value_type for p in self.model.parameters] return DataSourceParameters( diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py new file mode 100644 index 0000000000000000000000000000000000000000..7bb6ba43186151cee28f697d39e2ef8655e00ab5 --- /dev/null +++ b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py @@ -0,0 +1,38 @@ +import unittest + +from force_bdss.bdss_application import BDSSApplication + +from force_bdss.core_plugins.dummy.dummy_dakota.dakota_bundle import ( + DummyDakotaBundle) +from force_bdss.data_sources.data_source_parameters import DataSourceParameters + +from force_bdss.mco.parameters.base_mco_parameter_factory import \ + BaseMCOParameterFactory +from force_bdss.mco.parameters.core_mco_parameters import RangedMCOParameter + +try: + import mock +except ImportError: + from unittest import mock + + +class TestDakotaCommunicator(unittest.TestCase): + def test_receive_from_mco(self): + bundle = DummyDakotaBundle() + mock_application = mock.Mock(spec=BDSSApplication) + mock_parameter_factory = mock.Mock(spec=BaseMCOParameterFactory) + model = bundle.create_model() + model.parameters = [ + RangedMCOParameter(mock_parameter_factory) + ] + comm = bundle.create_communicator(mock_application, model) + + with mock.patch("sys.stdin") as stdin: + stdin.read.return_value = "1" + + data = comm.receive_from_mco() + self.assertIsInstance(data, DataSourceParameters) + self.assertEqual(len(data.value_names), 1) + self.assertEqual(len(data.value_types), 1) + self.assertEqual(len(data.values), 1) +