From 1bbf26c62377048be558258e3383334e36cf9ea0 Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Wed, 2 Aug 2017 15:16:47 +0100
Subject: [PATCH] Testing and fixing base_data_source_model

---
 .../data_sources/base_data_source_model.py    |  1 +
 .../tests/test_base_data_source_model.py      | 57 +++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 force_bdss/data_sources/tests/test_base_data_source_model.py

diff --git a/force_bdss/data_sources/base_data_source_model.py b/force_bdss/data_sources/base_data_source_model.py
index 75f7c53..2326075 100644
--- a/force_bdss/data_sources/base_data_source_model.py
+++ b/force_bdss/data_sources/base_data_source_model.py
@@ -34,3 +34,4 @@ class BaseDataSourceModel(ABCHasStrictTraits):
         state["input_slot_maps"] = [
             x.__getstate__() for x in self.input_slot_maps
         ]
+        return state
diff --git a/force_bdss/data_sources/tests/test_base_data_source_model.py b/force_bdss/data_sources/tests/test_base_data_source_model.py
new file mode 100644
index 0000000..e0e3a0f
--- /dev/null
+++ b/force_bdss/data_sources/tests/test_base_data_source_model.py
@@ -0,0 +1,57 @@
+import unittest
+
+from force_bdss.core.input_slot_map import InputSlotMap
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+from force_bdss.data_sources.base_data_source_bundle import \
+    BaseDataSourceBundle
+from force_bdss.data_sources.base_data_source_model import BaseDataSourceModel
+
+
+class DummyDataSourceModel(BaseDataSourceModel):
+    pass
+
+
+class TestBaseDataSourceModel(unittest.TestCase):
+    def test_getstate(self):
+        model = DummyDataSourceModel(mock.Mock(spec=BaseDataSourceBundle))
+        self.assertEqual(
+            model.__getstate__(),
+            {
+                "__traits_version__": "4.6.0",
+                "input_slot_maps": [],
+                "output_slot_names": []
+            })
+
+        model.input_slot_maps = [
+            InputSlotMap(
+                name="foo"
+            ),
+            InputSlotMap(
+                name="bar"
+            )
+        ]
+        model.output_slot_names = ["baz", "quux"]
+
+        self.assertEqual(
+            model.__getstate__(),
+            {
+                "__traits_version__": "4.6.0",
+                "input_slot_maps": [
+                    {
+                        "__traits_version__": "4.6.0",
+                        "source": "Environment",
+                        "name": "foo"
+                    },
+                    {
+                        "__traits_version__": "4.6.0",
+                        "source": "Environment",
+                        "name": "bar"
+                    }
+                ],
+                "output_slot_names": ["baz", "quux"]
+            })
-- 
GitLab