diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index 6b3b3267494bc9d4bf94c4f39c8405e71c1aa91e..32faf354a8a6eabf941c72f668501fbc89db988d 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -64,7 +64,8 @@ class CoreMCODriver(BaseCoreDriver): finally: self._deliver_finish_event() - sys.exit(1 if error else 0) + if error: + sys.exit(1) @on_trait_change("application:stopping") def application_stopping(self): diff --git a/force_bdss/tests/test_base_extension_plugin.py b/force_bdss/tests/test_base_extension_plugin.py index ca5574ac44c1ac0190c92f0037d211c5463ad680..11ed8c087eae096f7bf142bb5bd83da664a68caa 100644 --- a/force_bdss/tests/test_base_extension_plugin.py +++ b/force_bdss/tests/test_base_extension_plugin.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals import unittest +import testfixtures try: import mock except ImportError: @@ -25,7 +26,8 @@ class TestBaseExtensionPlugin(unittest.TestCase): def test_exception(self): with mock.patch.object(ProbeExtensionPlugin, "get_name") \ - as mock_get_name: + as mock_get_name, \ + testfixtures.LogCapture(): mock_get_name.side_effect = Exception("Boom") plugin = ProbeExtensionPlugin() diff --git a/force_bdss/tests/test_core_mco_driver.py b/force_bdss/tests/test_core_mco_driver.py index fc325cddc868f88473ad9fb36e529021ee8e3120..c5338187d5d5fa0bf1e4c1ce3b26b3a5052a6fca 100644 --- a/force_bdss/tests/test_core_mco_driver.py +++ b/force_bdss/tests/test_core_mco_driver.py @@ -1,6 +1,7 @@ import unittest from testfixtures import LogCapture +from force_bdss.core.data_value import DataValue from force_bdss.tests.probe_classes.factory_registry_plugin import \ ProbeFactoryRegistryPlugin from force_bdss.core_driver_events import ( @@ -55,7 +56,7 @@ class TestCoreMCODriver(unittest.TestCase): application=self.mock_application, ) listener = driver.listeners[0] - driver.mco.started = True + driver._deliver_start_event() self.assertIsInstance(listener.deliver_call_args[0][0], MCOStartEvent) def test_finished_event_handling(self): @@ -63,7 +64,7 @@ class TestCoreMCODriver(unittest.TestCase): application=self.mock_application, ) listener = driver.listeners[0] - driver.mco.finished = True + driver._deliver_finish_event() self.assertIsInstance(listener.deliver_call_args[0][0], MCOFinishEvent) def test_progress_event_handling(self): @@ -71,12 +72,22 @@ class TestCoreMCODriver(unittest.TestCase): application=self.mock_application, ) listener = driver.listeners[0] - driver.mco.new_data = {'input': (1, 2), 'output': (3, 4)} + driver.mco.notify_new_point( + [DataValue(value=1), DataValue(value=2)], + [DataValue(value=3), DataValue(value=4)], + [0.5, 0.5]) self.assertIsInstance( listener.deliver_call_args[0][0], MCOProgressEvent) - self.assertEqual(listener.deliver_call_args[0][0].input, (1, 2)) - self.assertEqual(listener.deliver_call_args[0][0].output, (3, 4)) + + event = listener.deliver_call_args[0][0] + + self.assertEqual(event.optimal_point[0].value, 1) + self.assertEqual(event.optimal_point[1].value, 2) + self.assertEqual(event.optimal_kpis[0].value, 3) + self.assertEqual(event.optimal_kpis[1].value, 4) + self.assertEqual(event.weights[0], 0.5) + self.assertEqual(event.weights[0], 0.5) def test_listener_init_exception(self): driver = CoreMCODriver( @@ -106,7 +117,7 @@ class TestCoreMCODriver(unittest.TestCase): listener = driver.listeners[0] listener.deliver_function = raise_exception with LogCapture() as capture: - driver.mco.started = True + driver._deliver_start_event() self.assertTrue(listener.deliver_called) capture.check(