diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index fb940f70c9a1fd227c8374d732be0ef25e1138e7..c0ff9fa016664685d4607612a4425129f764b084 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -66,12 +66,11 @@ class CoreMCODriver(BaseCoreDriver): try: optimizer = mco_factory.create_optimizer() except Exception: - factory_id = mco_factory.id, - plugin_id = mco_factory.plugin.id log.exception("Unable to instantiate optimizer for mco '{}' in " "plugin '{}'. An exception was raised. " "This might indicate a programming error in the " - "plugin.".format(factory_id, plugin_id)) + "plugin.".format(mco_factory.id, + mco_factory.plugin.id)) raise return optimizer diff --git a/force_bdss/tests/test_core_mco_driver.py b/force_bdss/tests/test_core_mco_driver.py index 0c8fcbf7570371566a0a8ef29b1ddddd911a5c01..bce737c018746ab34a438dfad821f9b8400f83d8 100644 --- a/force_bdss/tests/test_core_mco_driver.py +++ b/force_bdss/tests/test_core_mco_driver.py @@ -135,3 +135,44 @@ class TestCoreMCODriver(unittest.TestCase): "'force.bdss.enthought.plugin.test.v0" ".factory.probe_notification_listener' in plugin " "'force.bdss.enthought.plugin.test.v0'.")) + + def test_listener_creation_error(self): + driver = CoreMCODriver( + application=self.mock_application, + ) + registry = self.factory_registry_plugin + nl_factory = registry.notification_listener_factories[0] + nl_factory.raises_on_create_listener = True + + with LogCapture() as capture: + with self.assertRaises(Exception): + driver.listeners + capture.check(('force_bdss.core_mco_driver', + 'ERROR', + 'Failed to create listener with id ' + "'force.bdss.enthought.plugin.test.v0" + ".factory.probe_notification_listener' " + "in plugin 'force.bdss.enthought.plugin" + ".test.v0'. This may indicate a " + 'programming error in the plugin.'),) + + def test_create_optimizer_error(self): + driver = CoreMCODriver( + application=self.mock_application, + ) + registry = self.factory_registry_plugin + mco_factory = registry.mco_factories[0] + mco_factory.raises_on_create_optimizer = True + + with LogCapture() as capture: + with self.assertRaises(Exception): + driver.mco + capture.check(('force_bdss.core_mco_driver', + 'ERROR', + 'Unable to instantiate optimizer for mco ' + "'force.bdss.enthought.plugin.test.v0" + ".factory.probe_mco' in plugin " + "'force.bdss.enthought.plugin.test.v0'. " + "An exception was raised. This might " + 'indicate a programming error in the plugin.'),) +