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 9a6b56203a0cbfafecfd4bd634b05504139a578d..3215cf8b908f6285a9caf2a643a0433765697e02 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 @@ -1,9 +1,16 @@ import unittest + +from force_bdss.data_sources.tests.test_base_data_source import DummyDataSource +from force_bdss.data_sources.tests.test_base_data_source_model import \ + DummyDataSourceModel + try: import mock except ImportError: from unittest import mock +import testfixtures + from envisage.plugin import Plugin from force_bdss.data_sources.base_data_source_factory import \ BaseDataSourceFactory @@ -21,8 +28,35 @@ class DummyDataSourceFactory(BaseDataSourceFactory): pass +class DummyDataSourceFactoryFast(BaseDataSourceFactory): + id = "foo" + + name = "bar" + + model_class = DummyDataSourceModel + + data_source_class = DummyDataSource + + class TestBaseDataSourceFactory(unittest.TestCase): def test_initialization(self): factory = DummyDataSourceFactory(mock.Mock(spec=Plugin)) self.assertEqual(factory.id, 'foo') self.assertEqual(factory.name, 'bar') + + def test_fast_specification(self): + factory = DummyDataSourceFactoryFast(mock.Mock(spec=Plugin)) + self.assertIsInstance(factory.create_data_source(), DummyDataSource) + self.assertIsInstance(factory.create_model(), DummyDataSourceModel) + + def test_fast_specification_errors(self): + factory = DummyDataSourceFactoryFast(mock.Mock(spec=Plugin)) + factory.model_class = None + factory.data_source_class = None + + with testfixtures.LogCapture(): + with self.assertRaises(RuntimeError): + factory.create_data_source() + + with self.assertRaises(RuntimeError): + factory.create_model() diff --git a/force_bdss/kpi/base_kpi_calculator_factory.py b/force_bdss/kpi/base_kpi_calculator_factory.py index a2b7e8b39387eb076bd2a00c107d3b70beb313f4..de210b58c5adb6b5f99d7a9d1e56d521c99d741b 100644 --- a/force_bdss/kpi/base_kpi_calculator_factory.py +++ b/force_bdss/kpi/base_kpi_calculator_factory.py @@ -63,7 +63,7 @@ class BaseKPICalculatorFactory(ABCHasStrictTraits): log.error(msg) raise RuntimeError(msg) - return self.data_source_class(self) + return self.kpi_calculator_class(self) def create_model(self, model_data=None): """Factory method. diff --git a/force_bdss/kpi/tests/test_base_kpi_calculator_factory.py b/force_bdss/kpi/tests/test_base_kpi_calculator_factory.py index 188bc4c96af248c8214ce92f472bdaebe0c19db6..91a81a3ce2bd93bc22be9f320c27c878abccae70 100644 --- a/force_bdss/kpi/tests/test_base_kpi_calculator_factory.py +++ b/force_bdss/kpi/tests/test_base_kpi_calculator_factory.py @@ -1,8 +1,10 @@ import unittest +import testfixtures from envisage.plugin import Plugin -from force_bdss.kpi.base_kpi_calculator import BaseKPICalculator -from force_bdss.kpi.base_kpi_calculator_model import BaseKPICalculatorModel +from force_bdss.kpi.tests.test_base_kpi_calculator import DummyKPICalculator +from force_bdss.kpi.tests.test_base_kpi_calculator_model import \ + DummyKPICalculatorModel try: import mock @@ -12,9 +14,6 @@ except ImportError: from force_bdss.kpi.base_kpi_calculator_factory import \ BaseKPICalculatorFactory -kpi_calculator = mock.Mock(spec=BaseKPICalculator) -kpi_calculator_model = mock.Mock(spec=BaseKPICalculatorModel) - class DummyKPICalculatorFactory(BaseKPICalculatorFactory): id = "foo" @@ -28,14 +27,14 @@ class DummyKPICalculatorFactory(BaseKPICalculatorFactory): pass -class DummyKPICalculatorFactory2(BaseKPICalculatorFactory): +class DummyKPICalculatorFactoryFast(BaseKPICalculatorFactory): id = "foo" name = "bar" - kpi_calculator_class = kpi_calculator + kpi_calculator_class = DummyKPICalculator - model_class = kpi_calculator_model + model_class = DummyKPICalculatorModel class TestBaseKPICalculatorFactory(unittest.TestCase): @@ -45,4 +44,21 @@ class TestBaseKPICalculatorFactory(unittest.TestCase): self.assertEqual(factory.name, 'bar') def test_fast_definition(self): - factory = DummyKPICalculatorFactory2(mock.Mock(spec=Plugin)) + factory = DummyKPICalculatorFactoryFast(mock.Mock(spec=Plugin)) + self.assertIsInstance(factory.create_kpi_calculator(), + DummyKPICalculator) + + self.assertIsInstance(factory.create_model(), + DummyKPICalculatorModel) + + def test_fast_definition_errors(self): + factory = DummyKPICalculatorFactoryFast(mock.Mock(spec=Plugin)) + factory.kpi_calculator_class = None + factory.model_class = None + + with testfixtures.LogCapture(): + with self.assertRaises(RuntimeError): + factory.create_kpi_calculator() + + with self.assertRaises(RuntimeError): + factory.create_model() diff --git a/force_bdss/mco/tests/test_base_mco_factory.py b/force_bdss/mco/tests/test_base_mco_factory.py index 0c96a3bf63d49c956422ee68a8f9cf76555d1d45..2a68dccc509a08d4723a1a3df829078fb8e29093 100644 --- a/force_bdss/mco/tests/test_base_mco_factory.py +++ b/force_bdss/mco/tests/test_base_mco_factory.py @@ -1,5 +1,12 @@ import unittest +import testfixtures + +from force_bdss.mco.base_mco_model import BaseMCOModel +from force_bdss.mco.tests.test_base_mco import DummyMCO +from force_bdss.mco.tests.test_base_mco_communicator import \ + DummyMCOCommunicator + try: import mock except ImportError: @@ -28,8 +35,49 @@ class DummyMCOFactory(BaseMCOFactory): return [] +class DummyMCOModel(BaseMCOModel): + pass + + +class DummyMCOFactoryFast(BaseMCOFactory): + id = "foo" + + name = "bar" + + optimizer_class = DummyMCO + + model_class = DummyMCOModel + + communicator_class = DummyMCOCommunicator + + class TestBaseMCOFactory(unittest.TestCase): def test_initialization(self): factory = DummyMCOFactory(mock.Mock(spec=Plugin)) self.assertEqual(factory.id, 'foo') self.assertEqual(factory.name, 'bar') + + def test_fast_definition(self): + factory = DummyMCOFactoryFast(mock.Mock(spec=Plugin)) + self.assertIsInstance(factory.create_optimizer(), + DummyMCO) + self.assertIsInstance(factory.create_communicator(), + DummyMCOCommunicator) + self.assertIsInstance(factory.create_model(), + DummyMCOModel) + + def test_fast_definition_errors(self): + factory = DummyMCOFactoryFast(mock.Mock(spec=Plugin)) + factory.optimizer_class = None + factory.model_class = None + factory.communicator_class = None + + with testfixtures.LogCapture(): + with self.assertRaises(RuntimeError): + factory.create_optimizer() + + with self.assertRaises(RuntimeError): + factory.create_communicator() + + with self.assertRaises(RuntimeError): + factory.create_model() diff --git a/force_bdss/notification_listeners/tests/__init__.py b/force_bdss/notification_listeners/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/force_bdss/notification_listeners/tests/test_base_notification_listener_factory.py b/force_bdss/notification_listeners/tests/test_base_notification_listener_factory.py new file mode 100644 index 0000000000000000000000000000000000000000..029828095d84b267136514268e5aa6a0199bb9ce --- /dev/null +++ b/force_bdss/notification_listeners/tests/test_base_notification_listener_factory.py @@ -0,0 +1,77 @@ +import unittest + +import testfixtures +from envisage.plugin import Plugin + +try: + import mock +except ImportError: + from unittest import mock + +from force_bdss.notification_listeners.base_notification_listener import \ + BaseNotificationListener +from force_bdss.notification_listeners.base_notification_listener_factory \ + import \ + BaseNotificationListenerFactory +from force_bdss.notification_listeners.base_notification_listener_model \ + import \ + BaseNotificationListenerModel + + +class DummyNotificationListener(BaseNotificationListener): + def deliver(self, event): + pass + + +class DummyNotificationListenerModel(BaseNotificationListenerModel): + pass + + +class DummyNotificationListenerFactory(BaseNotificationListenerFactory): + id = "foo" + + name = "bar" + + def create_listener(self): + return DummyNotificationListener(self) + + def create_model(self, model_data=None): + return DummyNotificationListenerModel(self) + + +class DummyNotificationListenerFactoryFast(BaseNotificationListenerFactory): + id = "foo" + + name = "bar" + + listener_class = DummyNotificationListener + + model_class = DummyNotificationListenerModel + + +class TestBaseNotificationListenerFactory(unittest.TestCase): + def test_initialization(self): + factory = DummyNotificationListenerFactory(mock.Mock(spec=Plugin)) + self.assertEqual(factory.id, 'foo') + self.assertEqual(factory.name, 'bar') + + def test_fast_definition(self): + factory = DummyNotificationListenerFactoryFast(mock.Mock(spec=Plugin)) + + self.assertIsInstance(factory.create_listener(), + DummyNotificationListener) + + self.assertIsInstance(factory.create_model(), + DummyNotificationListenerModel) + + def test_fast_definition_errors(self): + factory = DummyNotificationListenerFactoryFast(mock.Mock(spec=Plugin)) + factory.listener_class = None + factory.model_class = None + + with testfixtures.LogCapture(): + with self.assertRaises(RuntimeError): + factory.create_model() + + with self.assertRaises(RuntimeError): + factory.create_listener() diff --git a/force_bdss/ui_hooks/tests/test_base_ui_hooks_factory.py b/force_bdss/ui_hooks/tests/test_base_ui_hooks_factory.py index 449fc91ee057c4a2bd522e0bed73a44c89c22358..dd65ce867496dcb8a2b9f5a06a5a14221f56150e 100644 --- a/force_bdss/ui_hooks/tests/test_base_ui_hooks_factory.py +++ b/force_bdss/ui_hooks/tests/test_base_ui_hooks_factory.py @@ -1,5 +1,10 @@ import unittest +import testfixtures + +from force_bdss.ui_hooks.tests.test_base_ui_hooks_manager import \ + DummyUIHooksManager + try: import mock except ImportError: @@ -9,13 +14,34 @@ from envisage.api import Plugin from ..base_ui_hooks_factory import BaseUIHooksFactory -class NullUIHooksFactory(BaseUIHooksFactory): +class DummyUIHooksFactory(BaseUIHooksFactory): def create_ui_hooks_manager(self): - return None + return DummyUIHooksManager(self) + + +class DummyUIHooksFactoryFast(BaseUIHooksFactory): + ui_hooks_manager_class = DummyUIHooksManager class TestBaseUIHooksFactory(unittest.TestCase): def test_initialize(self): mock_plugin = mock.Mock(spec=Plugin) - factory = NullUIHooksFactory(plugin=mock_plugin) + factory = DummyUIHooksFactory(plugin=mock_plugin) self.assertEqual(factory.plugin, mock_plugin) + + def test_fast_definition(self): + mock_plugin = mock.Mock(spec=Plugin) + factory = DummyUIHooksFactoryFast(plugin=mock_plugin) + + self.assertIsInstance( + factory.create_ui_hooks_manager(), + DummyUIHooksManager) + + def test_fast_definition_errors(self): + mock_plugin = mock.Mock(spec=Plugin) + factory = DummyUIHooksFactoryFast(plugin=mock_plugin) + factory.ui_hooks_manager_class = None + + with testfixtures.LogCapture(): + with self.assertRaises(RuntimeError): + factory.create_ui_hooks_manager() diff --git a/force_bdss/ui_hooks/tests/test_base_ui_hooks_manager.py b/force_bdss/ui_hooks/tests/test_base_ui_hooks_manager.py index 8724a19a1985682f577eee60af67235aef108e4b..5e3afd44a95908f9738867c9545c6b38e0be4a43 100644 --- a/force_bdss/ui_hooks/tests/test_base_ui_hooks_manager.py +++ b/force_bdss/ui_hooks/tests/test_base_ui_hooks_manager.py @@ -8,9 +8,13 @@ except ImportError: from unittest import mock +class DummyUIHooksManager(BaseUIHooksManager): + pass + + class TestBaseUIHooksManager(unittest.TestCase): def test_initialization(self): mock_factory = mock.Mock(spec=BaseUIHooksFactory) - mgr = BaseUIHooksManager(mock_factory) + mgr = DummyUIHooksManager(mock_factory) self.assertEqual(mgr.factory, mock_factory)