Francesco Romani has uploaded a new change for review.

Change subject: tests: v2v: add test for commit f8127d8
......................................................................

tests: v2v: add test for commit f8127d8

This patch adds a test to exercise the fix introduced in f8127d8

Change-Id: I38bd3c06df263bc208e1a8c8aa6c0081ebdc218d
Signed-off-by: Francesco Romani <[email protected]>
---
M tests/v2vTests.py
1 file changed, 33 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/67/47367/1

diff --git a/tests/v2vTests.py b/tests/v2vTests.py
index a4d929b..1311ce5 100644
--- a/tests/v2vTests.py
+++ b/tests/v2vTests.py
@@ -38,9 +38,11 @@
 class VmMock(object):
 
     def __init__(self, name="RHEL",
-                 vmid="564d7cb4-8e3d-06ec-ce82-7b2b13c6a611"):
+                 vmid="564d7cb4-8e3d-06ec-ce82-7b2b13c6a611",
+                 xmldesc_fail=False):
         self._name = name
         self._vmid = vmid
+        self._xmldesc_fail = xmldesc_fail
         self._mac_address = _mac_from_uuid(vmid)
 
     def name(self):
@@ -50,6 +52,8 @@
         return [5, 0]
 
     def XMLDesc(self, flags=0):
+        if self._xmldesc_fail:
+            raise fake.Error(libvirt.VIR_ERR_INTERNAL_ERROR)
         return """
 <domain type='vmware' id='15'>
     <name>{name}</name>
@@ -145,7 +149,7 @@
 </Envelope>"""
 
 
-VmSpec = namedtuple('VmSpec', ['name', 'vmid'])
+VmSpec = namedtuple('VmSpec', ['name', 'vmid', 'xmldesc_fail'])
 
 
 class v2vTests(TestCaseBase):
@@ -157,7 +161,7 @@
             raise SkipTest('v2v is not supported current os version')
 
         vmspecs = tuple(
-            VmSpec("RHEL_%i" % i, str(uuid.uuid4()))
+            VmSpec("RHEL_%i" % i, str(uuid.uuid4()), False)
             for i in range(self.NUM_VMS)
         )
 
@@ -174,6 +178,32 @@
         for vm, spec in zip(vms, vmspecs):
             self._assertVmMatchesSpec(vm, spec)
 
+    def testGetExternalVMsWithXMLDescFailure(self):
+        if not v2v.supported():
+            raise SkipTest('v2v is not supported current os version')
+
+        vmspecs = (
+            VmSpec("RHEL_0", str(uuid.uuid4()), False),
+            VmSpec("RHEL_1", str(uuid.uuid4()), True),
+            VmSpec("RHEL_2", str(uuid.uuid4()), False),
+        )
+
+        def _connect(uri, username, passwd):
+            return LibvirtMock(vms=vmspecs)
+
+        with MonkeyPatchScope([(libvirtconnection, 'open_connection',
+                                _connect)]):
+            vms = v2v.get_external_vms('esx://mydomain', 'user',
+                                       ProtectedPassword('password'))['vmList']
+
+        self.assertEqual(len(vms),
+                         sum(int(not spec.xmldesc_fail) for spec in vmspecs))
+
+        for vm, spec in zip(vms,
+                            (spec for spec in vmspecs
+                             if not spec.xmldesc_fail)):
+            self._assertVmMatchesSpec(vm, spec)
+
     def testOutputParser(self):
         output = ''.join(['[   0.0] Opening the source -i libvirt ://roo...\n',
                           '[   1.0] Creating an overlay to protect the f...\n',


-- 
To view, visit https://gerrit.ovirt.org/47367
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I38bd3c06df263bc208e1a8c8aa6c0081ebdc218d
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to