locking: Change locking order, move NAL after instances
[ganeti-local] / test / ganeti.hypervisor.hv_kvm_unittest.py
index 5721037..230efff 100755 (executable)
@@ -33,6 +33,7 @@ from ganeti import compat
 from ganeti import objects
 from ganeti import errors
 from ganeti import utils
+from ganeti import pathutils
 
 from ganeti.hypervisor import hv_kvm
 
@@ -43,12 +44,22 @@ class QmpStub(threading.Thread):
   """Stub for a QMP endpoint for a KVM instance
 
   """
-  _QMP_BANNER_DATA = {"QMP": {"version": {
-                      "package": "",
-                      "qemu": {"micro": 50, "minor": 13, "major": 0},
-                      "capabilities": [],
-                      }}}
-  _EMPTY_RESPONSE = {"return": []}
+  _QMP_BANNER_DATA = {
+    "QMP": {
+      "version": {
+        "package": "",
+        "qemu": {
+          "micro": 50,
+          "minor": 13,
+          "major": 0,
+          },
+        "capabilities": [],
+        },
+      }
+    }
+  _EMPTY_RESPONSE = {
+    "return": [],
+    }
 
   def __init__(self, socket_filename, server_responses):
     """Creates a QMP stub
@@ -102,20 +113,27 @@ class QmpStub(threading.Thread):
     conn.close()
 
   def encode_string(self, message):
-    return (serializer.DumpJson(message, indent=False) +
+    return (serializer.DumpJson(message) +
             hv_kvm.QmpConnection._MESSAGE_END_TOKEN)
 
 
 class TestQmpMessage(testutils.GanetiTestCase):
   def testSerialization(self):
-    test_data = {"execute": "command", "arguments": ["a", "b", "c"]}
+    test_data = {
+      "execute": "command",
+      "arguments": ["a", "b", "c"],
+      }
     message = hv_kvm.QmpMessage(test_data)
 
     for k, v in test_data.items():
-      self.failUnless(message[k] == v)
+      self.assertEqual(message[k], v)
+
+    serialized = str(message)
+    self.assertEqual(len(serialized.splitlines()), 1,
+                     msg="Got multi-line message")
 
-    rebuilt_message = hv_kvm.QmpMessage.BuildFromJsonString(str(message))
-    self.failUnless(rebuilt_message == message)
+    rebuilt_message = hv_kvm.QmpMessage.BuildFromJsonString(serialized)
+    self.assertEqual(rebuilt_message, message)
 
 
 class TestQmp(testutils.GanetiTestCase):
@@ -159,7 +177,10 @@ class TestQmp(testutils.GanetiTestCase):
     # Format the script
     for request, expected_response in zip(requests, expected_responses):
       response = qmp_connection.Execute(request)
-      self.failUnless(response == hv_kvm.QmpMessage(expected_response))
+      msg = hv_kvm.QmpMessage(expected_response)
+      self.assertEqual(len(str(msg).splitlines()), 1,
+                       msg="Got multi-line message")
+      self.assertEqual(response, msg)
 
 
 class TestConsole(unittest.TestCase):
@@ -179,7 +200,7 @@ class TestConsole(unittest.TestCase):
     cons = self._Test(instance, hvparams)
     self.assertEqual(cons.kind, constants.CONS_SSH)
     self.assertEqual(cons.host, instance.primary_node)
-    self.assertEqual(cons.command[0], constants.KVM_CONSOLE_WRAPPER)
+    self.assertEqual(cons.command[0], pathutils.KVM_CONSOLE_WRAPPER)
     self.assertEqual(cons.command[1], constants.SOCAT_PATH)
 
   def testVnc(self):