From 0df633d95589d1f0306af5b5e6fe75a73c1bc60c Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Fri, 28 Jul 2017 10:30:55 +0100
Subject: [PATCH] Increase coverage

---
 .../dummy/csv_extractor/tests/__init__.py     |  0
 .../tests/test_csv_extractor_bundle.py        | 24 ++++++++++
 .../tests/test_csv_extractor_data_source.py   | 33 ++++++++++++++
 .../dummy/dummy_dakota/tests/__init__.py      |  0
 .../dummy_dakota/tests/test_dakota_bundle.py  | 43 ++++++++++++++++++
 .../dummy/dummy_data_source/tests/__init__.py |  0
 .../tests/test_dummy_data_source.py           | 19 ++++++++
 .../tests/test_dummy_data_source_bundle.py    | 24 ++++++++++
 .../dummy_kpi_calculator/tests/__init__.py    |  0
 .../dummy/kpi_adder/tests/__init__.py         |  0
 .../core_plugins/dummy/tests/__init__.py      |  0
 .../tests/data_source_bundle_test_mixin.py    | 44 +++++++++++++++++++
 12 files changed, 187 insertions(+)
 create mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_bundle.py
 create mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_bundle.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_bundle.py
 create mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/tests/__init__.py
 create mode 100644 force_bdss/core_plugins/dummy/tests/data_source_bundle_test_mixin.py

diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_bundle.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_bundle.py
new file mode 100644
index 0000000..b5a563f
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_bundle.py
@@ -0,0 +1,24 @@
+import unittest
+
+from force_bdss.core_plugins.dummy.tests.data_source_bundle_test_mixin import \
+    DataSourceBundleTestMixin
+from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_bundle import \
+    CSVExtractorBundle
+from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_data_source \
+    import CSVExtractorDataSource
+from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_model import \
+    CSVExtractorModel
+
+
+class TestCSVExtractorBundle(DataSourceBundleTestMixin, unittest.TestCase):
+    @property
+    def bundle_class(self):
+        return CSVExtractorBundle
+
+    @property
+    def model_class(self):
+        return CSVExtractorModel
+
+    @property
+    def data_source_class(self):
+        return CSVExtractorDataSource
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
new file mode 100644
index 0000000..1be1beb
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
@@ -0,0 +1,33 @@
+import unittest
+
+from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_data_source \
+    import CSVExtractorDataSource
+from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_model import \
+    CSVExtractorModel
+from force_bdss.data_sources.base_data_source_bundle import \
+    BaseDataSourceBundle
+from force_bdss.data_sources.data_source_result import DataSourceResult
+from force_bdss.tests import fixtures
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+
+class TestCSVExtractorDataSource(unittest.TestCase):
+    def setUp(self):
+        self.bundle = mock.Mock(spec=BaseDataSourceBundle)
+
+    def test_initialization(self):
+        ds = CSVExtractorDataSource(self.bundle)
+        self.assertEqual(ds.bundle, self.bundle)
+
+    def test_run(self):
+        ds = CSVExtractorDataSource(self.bundle)
+        model = CSVExtractorModel(self.bundle)
+        model.filename = fixtures.get("foo.csv")
+        mock_params = mock.Mock()
+        mock_params.values = [1.0]
+        result = ds.run(model, mock_params)
+        self.assertIsInstance(result, DataSourceResult)
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_bundle.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_bundle.py
new file mode 100644
index 0000000..b455c6d
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_bundle.py
@@ -0,0 +1,43 @@
+import unittest
+
+from envisage.plugin import Plugin
+
+from force_bdss.core_plugins.dummy.dummy_dakota.dakota_bundle import \
+    DummyDakotaBundle
+from force_bdss.core_plugins.dummy.dummy_dakota.dakota_model import \
+    DummyDakotaModel
+from force_bdss.core_plugins.dummy.dummy_dakota.dakota_optimizer import \
+    DummyDakotaOptimizer
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+
+class TestDakotaBundle(unittest.TestCase):
+    def setUp(self):
+        self.plugin = mock.Mock(spec=Plugin)
+
+    def test_initialization(self):
+        bundle = DummyDakotaBundle(self.plugin)
+        self.assertIn("dummy_dakota", bundle.id)
+        self.assertEqual(bundle.plugin, self.plugin)
+
+    def test_create_model(self):
+        bundle = DummyDakotaBundle(self.plugin)
+        model = bundle.create_model({})
+        self.assertIsInstance(model, DummyDakotaModel)
+
+        model = bundle.create_model()
+        self.assertIsInstance(model, DummyDakotaModel)
+
+    def test_create_mco(self):
+        bundle = DummyDakotaBundle(self.plugin)
+        ds = bundle.create_optimizer()
+        self.assertIsInstance(ds, DummyDakotaOptimizer)
+
+    def test_create_communicator(self):
+        bundle = DummyDakotaBundle(self.plugin)
+        ds = bundle.create_optimizer()
+        self.assertIsInstance(ds, DummyDakotaOptimizer)
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
new file mode 100644
index 0000000..a77e99a
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
@@ -0,0 +1,19 @@
+import unittest
+
+from force_bdss.data_sources.base_data_source_bundle import \
+    BaseDataSourceBundle
+from force_bdss.data_sources.tests.test_base_data_source import DummyDataSource
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+
+class TestDummyDataSource(unittest.TestCase):
+    def setUp(self):
+        self.bundle = mock.Mock(spec=BaseDataSourceBundle)
+
+    def test_initialization(self):
+        ds = DummyDataSource(self.bundle)
+        self.assertEqual(ds.bundle, self.bundle)
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_bundle.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_bundle.py
new file mode 100644
index 0000000..617c4ed
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_bundle.py
@@ -0,0 +1,24 @@
+import unittest
+
+from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source import \
+    DummyDataSource
+from force_bdss.core_plugins.dummy.dummy_data_source\
+    .dummy_data_source_bundle import DummyDataSourceBundle
+from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source_model\
+    import DummyDataSourceModel
+from force_bdss.core_plugins.dummy.tests.data_source_bundle_test_mixin import \
+    DataSourceBundleTestMixin
+
+
+class TestDummyDataSourceBundle(DataSourceBundleTestMixin, unittest.TestCase):
+    @property
+    def bundle_class(self):
+        return DummyDataSourceBundle
+
+    @property
+    def model_class(self):
+        return DummyDataSourceModel
+
+    @property
+    def data_source_class(self):
+        return DummyDataSource
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py b/force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/tests/__init__.py b/force_bdss/core_plugins/dummy/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/force_bdss/core_plugins/dummy/tests/data_source_bundle_test_mixin.py b/force_bdss/core_plugins/dummy/tests/data_source_bundle_test_mixin.py
new file mode 100644
index 0000000..011a2b3
--- /dev/null
+++ b/force_bdss/core_plugins/dummy/tests/data_source_bundle_test_mixin.py
@@ -0,0 +1,44 @@
+from envisage.plugin import Plugin
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+
+class DataSourceBundleTestMixin(object):
+    def setUp(self):
+        self.plugin = mock.Mock(spec=Plugin)
+        super(DataSourceBundleTestMixin, self).setUp()
+
+    # Note: we can't use metaclasses. Apparently using six.with_metaclass
+    # breaks the unittest TestCase mechanism. py3 metaclassing works.
+    @property
+    def bundle_class(self):
+        raise NotImplementedError()
+
+    @property
+    def model_class(self):
+        raise NotImplementedError()
+
+    @property
+    def data_source_class(self):
+        raise NotImplementedError()
+
+    def test_initialization(self):
+        bundle = self.bundle_class(self.plugin)
+        self.assertNotEqual(bundle.id, "")
+        self.assertEqual(bundle.plugin, self.plugin)
+
+    def test_create_model(self):
+        bundle = self.bundle_class(self.plugin)
+        model = bundle.create_model({})
+        self.assertIsInstance(model, self.model_class)
+
+        model = bundle.create_model()
+        self.assertIsInstance(model, self.model_class)
+
+    def test_create_data_source(self):
+        bundle = self.bundle_class(self.plugin)
+        ds = bundle.create_data_source()
+        self.assertIsInstance(ds, self.data_source_class)
-- 
GitLab