From 9bf6a2f66bd5549523bcfb04ffde94a9a633a92d Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Fri, 28 Jul 2017 11:53:54 +0100
Subject: [PATCH] Added coverage

---
 .../tests/test_dakota_optimizer.py            | 46 +++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py

diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py
new file mode 100644
index 0000000..e8025ed
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py
@@ -0,0 +1,46 @@
+import unittest
+
+from force_bdss.core_plugins.dummy.dummy_dakota.dakota_model import \
+    DummyDakotaModel
+from force_bdss.mco.base_mco_bundle import BaseMCOBundle
+from force_bdss.mco.parameters.core_mco_parameters import RangedMCOParameter, \
+    RangedMCOParameterFactory
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+from force_bdss.core_plugins.dummy.dummy_dakota.dakota_optimizer import \
+    DummyDakotaOptimizer
+
+
+class TestDakotaOptimizer(unittest.TestCase):
+    def setUp(self):
+        self.bundle = mock.Mock(spec=BaseMCOBundle)
+        self.bundle.plugin = mock.Mock()
+        self.bundle.plugin.application = mock.Mock()
+        self.bundle.plugin.application.workflow_filepath = "whatever"
+
+    def test_initialization(self):
+        opt = DummyDakotaOptimizer(self.bundle)
+        self.assertEqual(opt.bundle, self.bundle)
+
+    def test_run(self):
+        opt = DummyDakotaOptimizer(self.bundle)
+        model = DummyDakotaModel(self.bundle)
+        model.parameters = [
+            RangedMCOParameter(mock.Mock(spec=RangedMCOParameterFactory),
+                lower_bound=1,
+                upper_bound=3,
+                initial_value=2)
+        ]
+
+        mock_process = mock.Mock()
+        mock_process.communicate = mock.Mock(return_value=("1 2 3", ""))
+
+        with mock.patch("subprocess.Popen") as mock_popen:
+            mock_popen.return_value = mock_process
+            opt.run(model)
+
+        self.assertEqual(mock_popen.call_count, 2)
-- 
GitLab