Merge branch 'stable-2.6'
[ganeti-local] / test / ganeti.ht_unittest.py
index 1dba316..59d9757 100755 (executable)
@@ -53,6 +53,7 @@ class TestTypeChecks(unittest.TestCase):
   def testInt(self):
     for val in [-100, -3, 0, 16, 128, 923874]:
       self.assertTrue(ht.TInt(val))
+      self.assertTrue(ht.TNumber(val))
 
     for val in [False, True, None, "", [], "Hello", 0.0, 0.23, -3818.163]:
       self.assertFalse(ht.TInt(val))
@@ -76,10 +77,19 @@ class TestTypeChecks(unittest.TestCase):
   def testFloat(self):
     for val in [-100.21, -3.0, 0.0, 16.12, 128.3433, 923874.928]:
       self.assertTrue(ht.TFloat(val))
+      self.assertTrue(ht.TNumber(val))
 
     for val in [False, True, None, "", [], "Hello", 0, 28, -1, -3281]:
       self.assertFalse(ht.TFloat(val))
 
+  def testNumber(self):
+    for val in [-100, -3, 0, 16, 128, 923874,
+                -100.21, -3.0, 0.0, 16.12, 128.3433, 923874.928]:
+      self.assertTrue(ht.TNumber(val))
+
+    for val in [False, True, None, "", [], "Hello", "1"]:
+      self.assertFalse(ht.TNumber(val))
+
   def testString(self):
     for val in ["", "abc", "Hello World", "123",
                 u"", u"\u272C", u"abc"]:
@@ -230,6 +240,41 @@ class TestTypeChecks(unittest.TestCase):
     self.assertTrue(fn({"other": 11}))
     self.assertTrue(fn({"other": object()}))
 
+  def testJobId(self):
+    for i in [0, 1, 4395, 2347625220]:
+      self.assertTrue(ht.TJobId(i))
+      self.assertTrue(ht.TJobId(str(i)))
+      self.assertFalse(ht.TJobId(-(i + 1)))
+
+    for i in ["", "-", ".", ",", "a", "99j", "job-123", "\t", " 83 ",
+              None, [], {}, object()]:
+      self.assertFalse(ht.TJobId(i))
+
+  def testRelativeJobId(self):
+    for i in [-1, -93, -4395]:
+      self.assertTrue(ht.TRelativeJobId(i))
+      self.assertFalse(ht.TRelativeJobId(str(i)))
+
+    for i in [0, 1, 2, 10, 9289, "", "0", "-1", "-999"]:
+      self.assertFalse(ht.TRelativeJobId(i))
+      self.assertFalse(ht.TRelativeJobId(str(i)))
+
+  def testItems(self):
+    self.assertRaises(AssertionError, ht.TItems, [])
+
+    fn = ht.TItems([ht.TString])
+    self.assertFalse(fn([0]))
+    self.assertFalse(fn([None]))
+    self.assertTrue(fn(["Hello"]))
+    self.assertTrue(fn(["Hello", "World"]))
+    self.assertTrue(fn(["Hello", 0, 1, 2, "anything"]))
+
+    fn = ht.TItems([ht.TAny, ht.TInt, ht.TAny])
+    self.assertTrue(fn(["Hello", 0, []]))
+    self.assertTrue(fn(["Hello", 893782]))
+    self.assertTrue(fn([{}, -938210858947, None]))
+    self.assertFalse(fn(["Hello", []]))
+
 
 if __name__ == "__main__":
   testutils.GanetiTestProgram()