[WAYANG-#8] add context and platfom Test

Signed-off-by: bertty <bertty@apache.org>
diff --git a/python/src/pywy/dataquanta.py b/python/src/pywy/dataquanta.py
index 3d465c2..9f10eba 100644
--- a/python/src/pywy/dataquanta.py
+++ b/python/src/pywy/dataquanta.py
@@ -7,36 +7,38 @@
 from pywy.core import Plugin
 
 class WayangContext:
-  """
-  This is the entry point for users to work with Wayang.
-  """
-  plugins: Set[Plugin]
+    """
+    This is the entry point for users to work with Wayang.
+    """
+    plugins: Set[Plugin]
 
-  def __init__(self):
-    self.plugins = set()
+    def __init__(self):
+        self.plugins = set()
 
-  """
-  add a :class:`Plugin` to the :class:`Context`
-  """
-  def register(self, p: Plugin):
-    self.plugins.add(p)
-    return self
+    """
+    add a :class:`Plugin` to the :class:`Context`
+    """
+    def register(self, *plugins: Plugin):
+        for p in plugins:
+            self.plugins.add(p)
+        return self
 
-  """
-  remove a :class:`Plugin` from the :class:`Context`
-  """
-  def unregister(self, p: Plugin):
-    self.plugins.remove(p)
-    return self
+    """
+    remove a :class:`Plugin` from the :class:`Context`
+    """
+    def unregister(self, *plugins: Plugin):
+        for p in plugins:
+            self.plugins.remove(p)
+        return self
 
-  def textFile(self, file_path: str) -> 'DataQuanta[str]':
-    return DataQuanta(self, TextFileSource(file_path))
+    def textFile(self, file_path: str) -> 'DataQuanta[str]':
+        return DataQuanta(self, TextFileSource(file_path))
 
-  def __str__(self):
-    return "Plugins: {}".format(str(self.plugins))
+    def __str__(self):
+        return "Plugins: {}".format(str(self.plugins))
 
-  def __repr__(self):
-    return self.__str__()
+    def __repr__(self):
+        return self.__str__()
 
 class DataQuanta(GenericTco):
     """
diff --git a/python/src/pywy/tests/unit/core/platform_test.py b/python/src/pywy/tests/unit/core/platform_test.py
index aff1030..e9345a0 100644
--- a/python/src/pywy/tests/unit/core/platform_test.py
+++ b/python/src/pywy/tests/unit/core/platform_test.py
@@ -1,16 +1,14 @@
 import unittest
 
+from pywy.core.platform import Platform
+
 
 class TestUnitCorePlatform(unittest.TestCase):
     def setUp(self):
         pass
 
-    def test_TO_REMOVE(self):
-        """
-        TODO REMOVE THIS TEST, IT JUST TO VALIDATE THAT EVERYTHING IS CORRECT IN TERMS OF ENVIRONMENT
-        Returns
-        -------
-
-        """
-        self.assertEqual("a", "a")
-
+    def test_create(self):
+        name = "platform"
+        p = Platform(name)
+        self.assertEqual(type(p), Platform)
+        self.assertEqual(p.name, name)
diff --git a/python/src/pywy/tests/unit/dataquanta/context_test.py b/python/src/pywy/tests/unit/dataquanta/context_test.py
new file mode 100644
index 0000000..a74c28b
--- /dev/null
+++ b/python/src/pywy/tests/unit/dataquanta/context_test.py
@@ -0,0 +1,86 @@
+import unittest
+from unittest.mock import Mock
+
+from pywy.dataquanta import WayangContext
+from pywy.dataquanta import DataQuanta
+from pywy.operators.source import TextFileSource
+
+
+class TestUnitDataquantaContext(unittest.TestCase):
+
+    def test_create(self):
+        context = WayangContext()
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 0)
+
+    def test_set_pluggin(self):
+        pluggin = Mock()
+        context = WayangContext().register(pluggin)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 1)
+
+    def test_register_bulk_pluggins(self):
+        pluggin = Mock()
+        pluggin2 = Mock()
+        context = WayangContext().register(pluggin, pluggin2)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 2)
+
+    def test_register_one_by_one_pluggins(self):
+        pluggin = Mock()
+        pluggin2 = Mock()
+        context = WayangContext().register(pluggin).register(pluggin2)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 2)
+
+    def test_register_one_two_times_pluggins(self):
+        pluggin = Mock()
+        context = WayangContext().register(pluggin).register(pluggin)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 1)
+
+    def test_unregister_pluggins(self):
+        pluggin = Mock()
+        context = WayangContext().register(pluggin)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 1)
+
+        context = context.unregister(pluggin)
+
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 0)
+
+    def test_unregister_in_bulk_pluggins(self):
+        pluggin = Mock()
+        pluggin2 = Mock()
+        pluggin3 = Mock()
+        context = WayangContext().register(pluggin, pluggin2, pluggin3)
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 3)
+
+        context = context.unregister(pluggin,pluggin3)
+
+        self.assertIsInstance(context, WayangContext)
+        self.assertIsInstance(context.plugins, set)
+        self.assertEqual(len(context.plugins), 1)
+        self.assertEqual(context.plugins.pop(), pluggin2)
+
+    def test_textfile_withoutPlugin(self):
+        path = Mock()
+        context = WayangContext()
+        self.assertIsInstance(context, WayangContext)
+        self.assertEqual(len(context.plugins), 0)
+
+        dataQuanta = context.textFile(path)
+
+        self.assertIsInstance(dataQuanta, DataQuanta)
+        self.assertIsInstance(dataQuanta.operator, TextFileSource)
+        self.assertEqual(context, dataQuanta.context)
\ No newline at end of file