Add the gnt-storage client
[ganeti-local] / test / ganeti.cli_unittest.py
index 5ab333f..3ebde5f 100755 (executable)
@@ -43,14 +43,14 @@ class TestParseTimespec(unittest.TestCase):
   def testValidTimes(self):
     """Test valid timespecs"""
     test_data = [
-      ('1s', 1),
-      ('1', 1),
-      ('1m', 60),
-      ('1h', 60 * 60),
-      ('1d', 60 * 60 * 24),
-      ('1w', 60 * 60 * 24 * 7),
-      ('4h', 4 * 60 * 60),
-      ('61m', 61 * 60),
+      ("1s", 1),
+      ("1", 1),
+      ("1m", 60),
+      ("1h", 60 * 60),
+      ("1d", 60 * 60 * 24),
+      ("1w", 60 * 60 * 24 * 7),
+      ("4h", 4 * 60 * 60),
+      ("61m", 61 * 60),
       ]
     for value, expected_result in test_data:
       self.failUnlessEqual(cli.ParseTimespec(value), expected_result)
@@ -58,10 +58,10 @@ class TestParseTimespec(unittest.TestCase):
   def testInvalidTime(self):
     """Test invalid timespecs"""
     test_data = [
-      '1y',
-      '',
-      'aaa',
-      's',
+      "1y",
+      "",
+      "aaa",
+      "s",
       ]
     for value in test_data:
       self.failUnlessRaises(OpPrereqError, cli.ParseTimespec, value)
@@ -128,7 +128,7 @@ class TestToStream(unittest.TestCase):
                  ]:
       buf = StringIO()
       cli._ToStream(buf, data)
-      self.failUnlessEqual(buf.getvalue(), data+'\n')
+      self.failUnlessEqual(buf.getvalue(), data + "\n")
 
   def testParams(self):
       buf = StringIO()
@@ -1010,5 +1010,39 @@ class TestParseArgs(unittest.TestCase):
                       ["test", "list"], cmd, aliases, set())
 
 
+class TestQftNames(unittest.TestCase):
+  def testComplete(self):
+    self.assertEqual(frozenset(cli._QFT_NAMES), constants.QFT_ALL)
+
+  def testUnique(self):
+    lcnames = map(lambda s: s.lower(), cli._QFT_NAMES.values())
+    self.assertFalse(utils.FindDuplicates(lcnames))
+
+  def testUppercase(self):
+    for name in cli._QFT_NAMES.values():
+      self.assertEqual(name[0], name[0].upper())
+
+
+class TestFieldDescValues(unittest.TestCase):
+  def testKnownKind(self):
+    fdef = objects.QueryFieldDefinition(name="aname",
+                                        title="Atitle",
+                                        kind=constants.QFT_TEXT,
+                                        doc="aaa doc aaa")
+    self.assertEqual(cli._FieldDescValues(fdef),
+                     ["aname", "Text", "Atitle", "aaa doc aaa"])
+
+  def testUnknownKind(self):
+    kind = "#foo#"
+
+    self.assertFalse(kind in constants.QFT_ALL)
+    self.assertFalse(kind in cli._QFT_NAMES)
+
+    fdef = objects.QueryFieldDefinition(name="zname", title="Ztitle",
+                                        kind=kind, doc="zzz doc zzz")
+    self.assertEqual(cli._FieldDescValues(fdef),
+                     ["zname", kind, "Ztitle", "zzz doc zzz"])
+
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()