Add whitelist for opcodes using BGL
[ganeti-local] / test / ganeti.utils.algo_unittest.py
index a0685a8..6a3b6d6 100755 (executable)
@@ -218,6 +218,23 @@ class TestNiceSort(unittest.TestCase):
     self.assertEqual(keyfn.count, len(data),
                      msg="Key function was not called once per value")
 
+  def testNiceSortKey(self):
+    self.assertEqual(algo.NiceSortKey(""),
+                     ([None] * algo._SORTER_GROUPS) + [""])
+    self.assertEqual(algo.NiceSortKey("Hello World"),
+                     ["Hello World"] +
+                     ([None] * int(algo._SORTER_GROUPS - 1)) + [""])
+    self.assertEqual(algo.NiceSortKey("node1.net75.bld3.example.com"),
+                     ["node", 1, ".net", 75, ".bld", 3, ".example.com",
+                      None, ""])
+
+
+class TestInvertDict(unittest.TestCase):
+  def testInvertDict(self):
+    test_dict = { "foo": 1, "bar": 2, "baz": 5 }
+    self.assertEqual(algo.InvertDict(test_dict),
+                     { 1: "foo", 2: "bar", 5: "baz"})
+
 
 class TimeMock:
   def __init__(self, values):
@@ -255,5 +272,33 @@ class TestRunningTimeout(unittest.TestCase):
     self.assertRaises(ValueError, algo.RunningTimeout, -1.0, True)
 
 
+class TestJoinDisjointDicts(unittest.TestCase):
+  def setUp(self):
+    self.non_empty_dict = {"a": 1, "b": 2}
+    self.empty_dict = dict()
+
+  def testWithEmptyDicts(self):
+    self.assertEqual(self.empty_dict, algo.JoinDisjointDicts(self.empty_dict,
+      self.empty_dict))
+    self.assertEqual(self.non_empty_dict, algo.JoinDisjointDicts(
+      self.empty_dict, self.non_empty_dict))
+    self.assertEqual(self.non_empty_dict, algo.JoinDisjointDicts(
+      self.non_empty_dict, self.empty_dict))
+
+  def testNonDisjoint(self):
+    self.assertRaises(AssertionError, algo.JoinDisjointDicts,
+      self.non_empty_dict, self.non_empty_dict)
+
+  def testCommonCase(self):
+    dict_a = {"TEST1": 1, "TEST2": 2}
+    dict_b = {"TEST3": 3, "TEST4": 4}
+
+    result = dict_a.copy()
+    result.update(dict_b)
+
+    self.assertEqual(result, algo.JoinDisjointDicts(dict_a, dict_b))
+    self.assertEqual(result, algo.JoinDisjointDicts(dict_b, dict_a))
+
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()