Giuseppe Lavagetto has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/278550

Change subject: Adding more unit tests
......................................................................

Adding more unit tests

Change-Id: Ie84cbb9e3ae57c1a9caab9b04b9a871b668783cd
---
A conftool/tests/unit/test_kvobject.py
A conftool/tests/unit/test_service.py
2 files changed, 62 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/software/conftool 
refs/changes/50/278550/1

diff --git a/conftool/tests/unit/test_kvobject.py 
b/conftool/tests/unit/test_kvobject.py
new file mode 100644
index 0000000..5db271d
--- /dev/null
+++ b/conftool/tests/unit/test_kvobject.py
@@ -0,0 +1,5 @@
+import unittest
+import mock
+
+from conftool import KVObject
+from conftool.tests.unit import MockBackend
diff --git a/conftool/tests/unit/test_service.py 
b/conftool/tests/unit/test_service.py
new file mode 100644
index 0000000..a5cc36f
--- /dev/null
+++ b/conftool/tests/unit/test_service.py
@@ -0,0 +1,57 @@
+import unittest
+import mock
+from conftool import KVObject, service, drivers
+from conftool import configuration
+from conftool.tests.unit import MockBackend
+
+
+class TestService(unittest.TestCase):
+
+    def _mock_read(self, values):
+        if values is None:
+            KVObject.backend.driver.read = mock.MagicMock(
+                side_effect=drivers.NotFoundError)
+        else:
+            KVObject.backend.driver.read = mock.MagicMock(return_value=values)
+
+    def _mock_defaults(self, values):
+        def _side_effect(what):
+            return values[what]
+        service.Service.get_defaults = mock.MagicMock(side_effect=_side_effect)
+
+    def setUp(self):
+        KVObject.backend = MockBackend({})
+        KVObject.config = configuration.Config(driver="")
+
+    @mock.patch('conftool.service.Service.get_default')
+    def test_new_service(self, mocker):
+        """New service creation"""
+        mocker.return_value = 'default_value'
+        self._mock_read(None)
+        n = service.Service('cluster', 'foo')
+        # Test
+        self.assertEquals(n.base_path(), 'services')
+        self.assertEquals(n.key, 'services/cluster/foo')
+        self.assertFalse(n.exists)
+        self.assertEquals(n.datacenters, 'default_value')
+        self.assertEquals(n.name, 'foo')
+
+    def test_read(self):
+        """Test that reading fetches correctly the values"""
+        self._mock_read({"datacenters": ['a', 'b', 'c'],
+                         "default_values": {"pooled": "no"},
+                         "something_else": "some_value"})
+        s = service.Service('cluster', 'foo')
+        self.assertEquals(s.datacenters, ['a', 'b', 'c'])
+        self.assertEquals(s.default_values['pooled'], "no")
+        self.assertEquals(s._schemaless['something_else'], 'some_value')
+
+    def test_failed_validation(self):
+        """Test bad validation"""
+        self._mock_read({"datacenters": "maybe?", "default_values": 20})
+        s = service.Service('cluster', 'foo')
+        self.assertEquals(s.datacenters, [])
+        self.assertEquals(s.default_values, {'pooled': "no", "weight": 0})
+
+    def test_dir(self):
+        self.assertEquals(service.Service.dir('a'), 'services/a')

-- 
To view, visit https://gerrit.wikimedia.org/r/278550
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie84cbb9e3ae57c1a9caab9b04b9a871b668783cd
Gerrit-PatchSet: 1
Gerrit-Project: operations/software/conftool
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to