diff --git a/force_bdss/core/base_factory.py b/force_bdss/core/base_factory.py index e8daa730591b65ebe6cc89398cc95e59d1cd50af..f69db3f1d97c1da7848c1a40bc7895ae51ef4226 100644 --- a/force_bdss/core/base_factory.py +++ b/force_bdss/core/base_factory.py @@ -1,5 +1,5 @@ from envisage.plugin import Plugin -from traits.api import HasStrictTraits, Str, Instance +from traits.api import HasStrictTraits, Str, Unicode, Instance from force_bdss.ids import factory_id @@ -12,6 +12,9 @@ class BaseFactory(HasStrictTraits): #: A human readable name of the factory. Spaces allowed name = Str() + #: A long description of the factory. + description = Unicode() + #: Reference to the plugin that carries this factory #: This is automatically set by the system. you should not define it #: in your subclass. @@ -21,6 +24,7 @@ class BaseFactory(HasStrictTraits): super(BaseFactory, self).__init__(plugin=plugin, *args, **kwargs) self.name = self.get_name() + self.description = self.get_description() identifier = self.get_identifier() try: id = self._global_id(identifier) @@ -51,5 +55,8 @@ class BaseFactory(HasStrictTraits): "get_identifier was not implemented in factory {}".format( self.__class__)) + def get_description(self): + return u"No description available." + def _global_id(self, identifier): return factory_id(self.plugin.id, identifier) diff --git a/force_bdss/data_sources/tests/test_base_data_source_factory.py b/force_bdss/data_sources/tests/test_base_data_source_factory.py index e2aa949db237b64a47a70e5ad4cd746a2642704a..8716ac78e4f0a246ae18b1f2a6d61666ca1a77b1 100644 --- a/force_bdss/data_sources/tests/test_base_data_source_factory.py +++ b/force_bdss/data_sources/tests/test_base_data_source_factory.py @@ -25,6 +25,7 @@ class TestBaseDataSourceFactory(unittest.TestCase): factory = DummyDataSourceFactory(self.plugin) self.assertEqual(factory.id, 'pid.factory.dummy_data_source') self.assertEqual(factory.name, 'Dummy data source') + self.assertEqual(factory.description, u"No description available.") self.assertEqual(factory.model_class, DummyDataSourceModel) self.assertEqual(factory.data_source_class, DummyDataSource) self.assertIsInstance(factory.create_data_source(), DummyDataSource) diff --git a/force_bdss/mco/parameters/base_mco_parameter_factory.py b/force_bdss/mco/parameters/base_mco_parameter_factory.py index bc3a0fd078c0001f12267f426a22e363231815fa..03598138df2b680a0557a55727eae4acb67994e2 100644 --- a/force_bdss/mco/parameters/base_mco_parameter_factory.py +++ b/force_bdss/mco/parameters/base_mco_parameter_factory.py @@ -1,4 +1,4 @@ -from traits.api import Str, Type, Instance, provides +from traits.api import Type, Instance, provides from force_bdss.core.base_factory import BaseFactory from force_bdss.ids import mco_parameter_id @@ -20,20 +20,12 @@ class BaseMCOParameterFactory(BaseFactory): mco_factory = Instance('force_bdss.mco.base_mco_factory.BaseMCOFactory', allow_none=False) - #: A long description of the parameter - description = Str() - # The model class to instantiate when create_model is called. model_class = Type( "force_bdss.mco.parameters.base_mco_parameter.BaseMCOParameter", allow_none=False ) - def get_description(self): - raise NotImplementedError( - "get_description was not implemented in factory {}".format( - self.__class__)) - def get_model_class(self): raise NotImplementedError( "get_model_class was not implemented in factory {}".format( @@ -46,7 +38,6 @@ class BaseMCOParameterFactory(BaseFactory): *args, **kwargs) - self.description = self.get_description() self.model_class = self.get_model_class() def create_model(self, data_values=None): 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 abc6ee6f778eba999888f1bdbbc3b8ada0a704c6..6456ecef5c565b5aa26805a1926ab42f3f33abe2 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 @@ -28,7 +28,7 @@ class TestBaseMCOParameterFactory(unittest.TestCase): factory = DummyMCOParameterFactory(mco_factory=self.mco_factory) self.assertEqual(factory.id, "mcoid.parameter.dummy_mco_parameter") self.assertEqual(factory.name, "Dummy MCO parameter") - self.assertEqual(factory.description, "description") + self.assertEqual(factory.description, u"description") self.assertEqual(factory.model_class, DummyMCOParameter) self.assertIsInstance(factory.create_model(), DummyMCOParameter) diff --git a/force_bdss/tests/dummy_classes/mco.py b/force_bdss/tests/dummy_classes/mco.py index 289d88efc5d016ae36e9a825edea2ed3b7617bde..e65b182693604d3206c9a4c2cf222ea00e80d56f 100644 --- a/force_bdss/tests/dummy_classes/mco.py +++ b/force_bdss/tests/dummy_classes/mco.py @@ -37,7 +37,7 @@ class DummyMCOParameterFactory(BaseMCOParameterFactory): return "Dummy MCO parameter" def get_description(self): - return "description" + return u"description" def get_model_class(self): return DummyMCOParameter