From 952151bfc59918d8557414ff9c8cad01647d9961 Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Wed, 25 Apr 2018 11:08:26 +0100 Subject: [PATCH] Fixed tests and incorrect import of class type via string --- .../data_sources/i_data_source_factory.py | 11 ++++++----- force_bdss/kpi/i_kpi_calculator_factory.py | 11 ++++++----- force_bdss/mco/i_mco_factory.py | 16 +++++++++------- .../parameters/base_mco_parameter_factory.py | 8 ++++---- .../tests/test_base_mco_parameter_factory.py | 9 ++++++++- .../i_notification_listener_factory.py | 18 +++++++++--------- force_bdss/ui_hooks/i_ui_hooks_factory.py | 8 ++++---- 7 files changed, 46 insertions(+), 35 deletions(-) diff --git a/force_bdss/data_sources/i_data_source_factory.py b/force_bdss/data_sources/i_data_source_factory.py index 7cbaa3b..9af71bf 100644 --- a/force_bdss/data_sources/i_data_source_factory.py +++ b/force_bdss/data_sources/i_data_source_factory.py @@ -1,9 +1,6 @@ from envisage.api import Plugin from traits.api import Interface, String, Instance, Type -from force_bdss.data_sources.base_data_source import BaseDataSource -from force_bdss.data_sources.base_data_source_model import BaseDataSourceModel - class IDataSourceFactory(Interface): """Envisage required interface for the BaseDataSourceFactory. @@ -15,9 +12,13 @@ class IDataSourceFactory(Interface): name = String() - data_source_class = Type(BaseDataSource) + data_source_class = Type( + "force_bdss.data_sources.base_data_source.BaseDataSource" + ) - model_class = Type(BaseDataSourceModel) + model_class = Type( + "force_bdss.data_sources.base_data_source_model.BaseDataSourceModel" + ) plugin = Instance(Plugin) diff --git a/force_bdss/kpi/i_kpi_calculator_factory.py b/force_bdss/kpi/i_kpi_calculator_factory.py index dc2a163..2877217 100644 --- a/force_bdss/kpi/i_kpi_calculator_factory.py +++ b/force_bdss/kpi/i_kpi_calculator_factory.py @@ -1,9 +1,6 @@ from traits.api import Interface, String, Instance, Type from envisage.plugin import Plugin -from force_bdss.kpi.base_kpi_calculator import BaseKPICalculator -from force_bdss.kpi.base_kpi_calculator_model import BaseKPICalculatorModel - class IKPICalculatorFactory(Interface): """Envisage required interface for the BaseKPICalculatorFactory. @@ -15,9 +12,13 @@ class IKPICalculatorFactory(Interface): name = String() - kpi_calculator_class = Type(BaseKPICalculator) + kpi_calculator_class = Type( + "force_bdss.kpi.base_kpi_calculator.BaseKPICalculator" + ) - model_class = Type(BaseKPICalculatorModel) + model_class = Type( + "force_bdss.kpi.base_kpi_calculator_model.BaseKPICalculatorModel" + ) plugin = Instance(Plugin) diff --git a/force_bdss/mco/i_mco_factory.py b/force_bdss/mco/i_mco_factory.py index 9ddfeb7..bc58e15 100644 --- a/force_bdss/mco/i_mco_factory.py +++ b/force_bdss/mco/i_mco_factory.py @@ -1,10 +1,6 @@ from traits.api import Interface, String, Instance, Type from envisage.plugin import Plugin -from force_bdss.mco.base_mco import BaseMCO -from force_bdss.mco.base_mco_communicator import BaseMCOCommunicator -from force_bdss.mco.base_mco_model import BaseMCOModel - class IMCOFactory(Interface): """Interface for the BaseMCOFactory. @@ -16,11 +12,17 @@ class IMCOFactory(Interface): name = String() - optimizer_class = Type(BaseMCO) + optimizer_class = Type( + "force_bdss.mco.base_mco.BaseMCO" + ) - model_class = Type(BaseMCOModel) + model_class = Type( + "force_bdss.mco.base_mco_communicator.BaseMCOCommunicator" + ) - communicator_class = Type(BaseMCOCommunicator) + communicator_class = Type( + "force_bdss.mco.base_mco_model.BaseMCOModel" + ) plugin = Instance(Plugin) diff --git a/force_bdss/mco/parameters/base_mco_parameter_factory.py b/force_bdss/mco/parameters/base_mco_parameter_factory.py index 6ea3ceb..cd8751b 100644 --- a/force_bdss/mco/parameters/base_mco_parameter_factory.py +++ b/force_bdss/mco/parameters/base_mco_parameter_factory.py @@ -1,7 +1,5 @@ from traits.api import HasStrictTraits, String, Type, Instance -from ..base_mco_factory import BaseMCOFactory - class BaseMCOParameterFactory(HasStrictTraits): """Factory that produces the model instance of a given BASEMCOParameter @@ -13,7 +11,7 @@ class BaseMCOParameterFactory(HasStrictTraits): """ #: A reference to the MCO factory this parameter factory lives in. - mco_factory = Instance(BaseMCOFactory) + mco_factory = Instance('force_bdss.mco.base_mco_factory.BaseMCOFactory') #: A unique string identifying the parameter id = String() @@ -25,7 +23,9 @@ class BaseMCOParameterFactory(HasStrictTraits): description = String("Undefined parameter") # The model class to instantiate when create_model is called. - model_class = Type('BaseMCOParameter') + model_class = Type( + "force_bdss.mco.parameters.base_mco_parameter.BaseMCOParameter" + ) def __init__(self, mco_factory, *args, **kwargs): self.mco_factory = mco_factory diff --git a/force_bdss/mco/parameters/tests/test_base_mco_parameter_factory.py b/force_bdss/mco/parameters/tests/test_base_mco_parameter_factory.py index 4c3a0ab..04206d7 100644 --- a/force_bdss/mco/parameters/tests/test_base_mco_parameter_factory.py +++ b/force_bdss/mco/parameters/tests/test_base_mco_parameter_factory.py @@ -1,5 +1,7 @@ import unittest +from envisage.plugin import Plugin + from force_bdss.mco.base_mco_factory import BaseMCOFactory try: @@ -25,9 +27,14 @@ class DummyMCOParameterFactory(BaseMCOParameterFactory): model_class = DummyMCOParameter +class DummyMCOFactory(BaseMCOFactory): + pass + + class TestBaseMCOParameterFactory(unittest.TestCase): def test_initialization(self): - factory = DummyMCOParameterFactory(mock.Mock(spec=BaseMCOFactory)) + factory = DummyMCOParameterFactory( + mco_factory=BaseMCOFactory(plugin=mock.Mock(spec=Plugin))) model = factory.create_model({"x": 42}) self.assertIsInstance(model, DummyMCOParameter) self.assertEqual(model.x, 42) diff --git a/force_bdss/notification_listeners/i_notification_listener_factory.py b/force_bdss/notification_listeners/i_notification_listener_factory.py index 056dda0..3f6a07b 100644 --- a/force_bdss/notification_listeners/i_notification_listener_factory.py +++ b/force_bdss/notification_listeners/i_notification_listener_factory.py @@ -1,12 +1,6 @@ -from traits.api import Interface, String, Instance +from traits.api import Interface, String, Instance, Type from envisage.plugin import Plugin -from force_bdss.notification_listeners.base_notification_listener import \ - BaseNotificationListener -from force_bdss.notification_listeners.base_notification_listener_model \ - import \ - BaseNotificationListenerModel - class INotificationListenerFactory(Interface): """Envisage required interface for the BaseNotificationListenerFactory. @@ -18,9 +12,15 @@ class INotificationListenerFactory(Interface): name = String() - listener_class = Instance(BaseNotificationListener) + listener_class = Type( + "force_bdss.notification_listeners" + ".base_notification_listener.BaseNotificationListener" + ) - model_class = Instance(BaseNotificationListenerModel) + model_class = Type( + "force_bdss.notification_listeners" + ".base_notification_listener_model.BaseNotificationListenerModel" + ) plugin = Instance(Plugin) diff --git a/force_bdss/ui_hooks/i_ui_hooks_factory.py b/force_bdss/ui_hooks/i_ui_hooks_factory.py index c1a203c..f702a96 100644 --- a/force_bdss/ui_hooks/i_ui_hooks_factory.py +++ b/force_bdss/ui_hooks/i_ui_hooks_factory.py @@ -1,8 +1,6 @@ -from traits.api import Interface, String, Instance +from traits.api import Interface, String, Instance, Type from envisage.plugin import Plugin -from force_bdss.ui_hooks.base_ui_hooks_manager import BaseUIHooksManager - class IUIHooksFactory(Interface): """Envisage required interface for the BaseUIHooksFactory. @@ -14,7 +12,9 @@ class IUIHooksFactory(Interface): name = String() - ui_hooks_manager_class = Instance(BaseUIHooksManager) + ui_hooks_manager_class = Type( + "force_bdss.ui_hooks.base_ui_hooks_manager.BaseUIHooksManager" + ) plugin = Instance(Plugin) -- GitLab