From 0adf7e2093a2ba09030206b0424841cbdc4856be Mon Sep 17 00:00:00 2001 From: yunmingyang Date: Mon, 3 Jul 2023 04:37:27 +0800 Subject: [PATCH] test: add a check about disk bus if creating a VM without OS --- test/check-machines-disks | 37 ++++++++++++++++++++++++++----------- test/machineslib.py | 16 ++++++++-------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/test/check-machines-disks b/test/check-machines-disks index 39c67f745..87b6f45a2 100755 --- a/test/check-machines-disks +++ b/test/check-machines-disks @@ -67,20 +67,20 @@ class TestMachinesDisks(machineslib.VirtualMachinesCase): b = self.browser m = self.machine - def openDialog(target): - b.click(f"#vm-subVmTest1-disks-{target}-edit") - b.wait_visible(f"#vm-subVmTest1-disks-{target}-edit-dialog") + def openDialog(target, name="subVmTest1"): + b.click(f"#vm-{name}-disks-{target}-edit") + b.wait_visible(f"#vm-{name}-disks-{target}-edit-dialog") - def cancel(target): - b.click(f"#vm-subVmTest1-disks-{target}-edit-dialog-cancel") - b.wait_not_present(f"#vm-subVmTest1-disks-{target}-edit-dialog") + def cancel(target, name="subVmTest1"): + b.click(f"#vm-{name}-disks-{target}-edit-dialog-cancel") + b.wait_not_present(f"#vm-{name}-disks-{target}-edit-dialog") - def save(target, xfail=None): - b.click(f"#vm-subVmTest1-disks-{target}-edit-dialog-save") + def save(target, name="subVmTest1", xfail=None): + b.click(f"#vm-{name}-disks-{target}-edit-dialog-save") if xfail: - b.wait_in_text(f"#vm-subVmTest1-disks-{target}-edit-dialog .pf-v5-c-alert", xfail) + b.wait_in_text(f"#vm-{name}-disks-{target}-edit-dialog .pf-v5-c-alert", xfail) else: - b.wait_not_present(f"#vm-subVmTest1-disks-{target}-edit-dialog") + b.wait_not_present(f"#vm-{name}-disks-{target}-edit-dialog") self.createVm("subVmTest1") @@ -184,7 +184,7 @@ class TestMachinesDisks(machineslib.VirtualMachinesCase): b.enter_page('/machines') openDialog("sdb") b.set_checked("#vm-subVmTest1-disks-sdb-edit-readonly", True) - save("sdb", "readonly sata disks are not supported") + save("sdb", xfail="readonly sata disks are not supported") cancel("sdb") openDialog("sdb") b.wait_not_present("#vm-subVmTest1-disks-sdb-edit-dialog .pf-v5-c-alert") @@ -219,6 +219,21 @@ class TestMachinesDisks(machineslib.VirtualMachinesCase): m.execute("virsh undefine subVmTest1") b.wait_not_present("#vm-subVmTest1-disks-vde-edit") + self.goToMainPage() + self.createVm("subVmTest2", running=False, os="unknown") + self.goToVmPage("subVmTest2") + + b.wait_in_text("#vm-subVmTest2-disks-hda-bus", "ide") + + openDialog("hda", name="subVmTest2") + b._wait_present("#vm-subVmTest2-disks-hda-edit-bus-type option[value=ide]:disabled") + b.select_from_dropdown("#vm-subVmTest2-disks-hda-edit-bus-type", "sata") + save("hda", name="subVmTest2") + + b.wait_in_text("#vm-subVmTest2-disks-sda-bus", "sata") + openDialog("sda", name="subVmTest2") + b.wait_not_present("#vm-subVmTest2-disks-hda-edit-bus-type option[value=ide]") + def testDisks(self): b = self.browser m = self.machine diff --git a/test/machineslib.py b/test/machineslib.py index 57ecc8e4f..84b4e0e17 100644 --- a/test/machineslib.py +++ b/test/machineslib.py @@ -144,7 +144,7 @@ def startLibvirt(self, m): m.execute("virsh net-start default || true") m.execute(r"until virsh net-info default | grep 'Active:\s*yes'; do sleep 1; done") - def createVm(self, name, graphics='none', ptyconsole=False, running=True, memory=128, connection='system', machine=None): + def createVm(self, name, graphics='none', ptyconsole=False, running=True, memory=128, connection='system', machine=None, os="cirros0.4.0"): m = machine or self.machine image_file = m.pull("cirros") @@ -174,15 +174,15 @@ def createVm(self, name, graphics='none', ptyconsole=False, running=True, memory else: console = "file,target.type=serial,source.path={} ".format(args["logfile"]) - command = ["virt-install --connect qemu:///{5} --name {0} " - "--os-variant cirros0.4.0 " + command = [f"virt-install --connect qemu:///{connection} --name {name} " + f"--os-variant {os} " "--boot hd,network " "--vcpus 1 " - "--memory {1} " - "--import --disk {2} " - "--graphics {3} " - "--console {4}" - "--print-step 1 > /tmp/xml-{5}".format(name, memory, img, "none" if graphics == "none" else graphics + ",listen=127.0.0.1", console, connection)] + f"--memory {memory} " + f"--import --disk {img} " + f"--graphics {'none' if graphics == 'none' else graphics + ',listen=127.0.0.1'} " + f"--console {console}" + f"--print-step 1 > /tmp/xml-{connection}"] command.append(f"virsh -c qemu:///{connection} define /tmp/xml-{connection}") if running: