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