Add unit test for LUGroupQuery
authorThomas Thrainer <thomasth@google.com>
Tue, 13 Aug 2013 09:17:46 +0000 (11:17 +0200)
committerThomas Thrainer <thomasth@google.com>
Wed, 14 Aug 2013 12:19:33 +0000 (14:19 +0200)
Provide unit test coverage for LUGroupQuery.

Signed-off-by: Thomas Thrainer <thomasth@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

test/py/cmdlib/group_unittest.py

index 91081c7..502d459 100644 (file)
@@ -25,6 +25,7 @@
 
 from ganeti import constants
 from ganeti import opcodes
+from ganeti import query
 
 from testsupport import *
 
@@ -173,5 +174,42 @@ class TestLUGroupAssignNodes(CmdlibTestCase):
     self.assertEqual(set(["inst3c"]), set(prev))
 
 
+class TestLUGroupQuery(CmdlibTestCase):
+  def setUp(self):
+    super(TestLUGroupQuery, self).setUp()
+    self.fields = query._BuildGroupFields().keys()
+
+  def testInvalidGroupName(self):
+    op = opcodes.OpGroupQuery(names=["does_not_exist"],
+                              output_fields=self.fields)
+
+    self.ExecOpCodeExpectOpPrereqError(op, "Some groups do not exist")
+
+  def testQueryAllGroups(self):
+    op = opcodes.OpGroupQuery(output_fields=self.fields)
+
+    self.ExecOpCode(op)
+
+    self.mcpu.assertLogIsEmpty()
+
+  def testQueryGroupsByNameAndUuid(self):
+    group1 = self.cfg.AddNewNodeGroup()
+    group2 = self.cfg.AddNewNodeGroup()
+
+    node1 = self.cfg.AddNewNode(group=group1)
+    node2 = self.cfg.AddNewNode(group=group1)
+    self.cfg.AddNewInstance(disk_template=constants.DT_DRBD8,
+                            primary_node=node1,
+                            secondary_node=node2)
+    self.cfg.AddNewInstance(primary_node=node2)
+
+    op = opcodes.OpGroupQuery(names=[group1.name, group2.uuid],
+                              output_fields=self.fields)
+
+    self.ExecOpCode(op)
+
+    self.mcpu.assertLogIsEmpty()
+
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()