From 1079cab71db58b92e43d2b920ae18c05e0ea8cd3 Mon Sep 17 00:00:00 2001
From: Mike Milner <mike.milner@canonical.com>
Date: Thu, 12 Jan 2012 15:31:19 +0100
Subject: Add initial unit test framework. Add initial tests for mergedict.

---
 tests/unittests/test_util.py | 53 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 tests/unittests/test_util.py

(limited to 'tests')

diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py
new file mode 100644
index 00000000..34a073d9
--- /dev/null
+++ b/tests/unittests/test_util.py
@@ -0,0 +1,53 @@
+from unittest import TestCase
+
+from cloudinit.util import mergedict
+
+class TestMergeDict(TestCase):
+    def test_simple_merge(self):
+        source = {"key1": "value1"}
+        candidate = {"key2": "value2"}
+        result = mergedict(source, candidate)
+        self.assertEqual({"key1": "value1", "key2": "value2"}, result)
+
+    def test_nested_merge(self):
+        source = {"key1": {"key1.1": "value1.1"}}
+        candidate = {"key1": {"key1.2": "value1.2"}}
+        result = mergedict(source, candidate)
+        self.assertEqual(
+            {"key1": {"key1.1": "value1.1", "key1.2": "value1.2"}}, result)
+
+    def test_merge_does_not_override(self):
+        source = {"key1": "value1", "key2": "value2"}
+        candidate = {"key2": "value2", "key2": "NEW VALUE"}
+        result = mergedict(source, candidate)
+        self.assertEqual(source, result)
+
+    def test_empty_candidate(self):
+        source = {"key": "value"}
+        candidate = {}
+        result = mergedict(source, candidate)
+        self.assertEqual(source, result)
+
+    def test_empty_source(self):
+        source = {}
+        candidate = {"key": "value"}
+        result = mergedict(source, candidate)
+        self.assertEqual(candidate, result)
+
+    def test_non_dict_candidate(self):
+        source = {"key": "value"}
+        candidate = "not a dict"
+        result = mergedict(source, candidate)
+        self.assertEqual(source, result)
+
+    def test_non_dict_source(self):
+        source = "not a dict"
+        candidate = {"key": "value"}
+        result = mergedict(source, candidate)
+        self.assertEqual(source, result)
+
+    def test_neither_dict(self):
+        source = "source"
+        candidate = "candidate"
+        result = mergedict(source, candidate)
+        self.assertEqual(source, result)
-- 
cgit v1.2.3