mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-01-11 05:17:59 +03:00
0638e72f1f
The new UI is handled in mediacombo. It's a combobox+entry. The combobox is prepopulated with host cdrom/floppy devices, and previously used media paths from gsettings The new VM wizard no longer has separate UI for cdrom device vs ISO media. The choosecd dialog is gone all together, and media is changed with the 'apply' button like all other details changes
105 lines
3.6 KiB
Python
105 lines
3.6 KiB
Python
# This work is licensed under the GNU GPLv2 or later.
|
|
# See the COPYING file in the top-level directory.
|
|
|
|
from tests.uitests import utils as uiutils
|
|
|
|
|
|
class MediaChange(uiutils.UITestCase):
|
|
"""
|
|
UI tests for details storage media change
|
|
"""
|
|
|
|
##############
|
|
# Test cases #
|
|
##############
|
|
|
|
def testMediaChange(self):
|
|
win = self._open_details_window(shutdown=True)
|
|
hw = win.find("hw-list")
|
|
tab = win.find("disk-tab")
|
|
combo = win.find("media-combo")
|
|
entry = win.find("media-entry")
|
|
appl = win.find("config-apply")
|
|
|
|
# Floppy + physical
|
|
hw.find("Floppy 1", "table cell").click()
|
|
combo.click_combo_entry()
|
|
combo.find(r"Floppy_install_label \(/dev/fdb\)")
|
|
self.assertTrue(entry.text == "No media detected (/dev/fda)")
|
|
entry.click()
|
|
entry.click_secondary_icon()
|
|
self.assertTrue(not entry.text)
|
|
appl.click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue(not entry.text)
|
|
appl.click()
|
|
|
|
# Enter /dev/fdb, after apply it should change to pretty label
|
|
entry.text = "/dev/fdb"
|
|
appl.click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue(entry.text == "Floppy_install_label (/dev/fdb)")
|
|
|
|
# Specify manual path
|
|
path = "/tmp/aaaaaaaaaaaaaaaaaaaaaaa.img"
|
|
entry.text = path
|
|
appl.click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue(entry.text == path)
|
|
|
|
# Go to Floppy 2, make sure previous path is in recent list
|
|
hw.find("Floppy 2", "table cell").click()
|
|
combo.click_combo_entry()
|
|
combo.find(path)
|
|
entry.click()
|
|
|
|
# Browse for image
|
|
hw.find("IDE CDROM 1", "table cell").click()
|
|
combo.click_combo_entry()
|
|
combo.find(r"Fedora12_media \(/dev/sr0\)")
|
|
entry.click()
|
|
tab.find("Browse", "push button").click()
|
|
browsewin = self.app.root.find(
|
|
"Choose Storage Volume", "frame")
|
|
browsewin.find_fuzzy("default-pool", "table cell").click()
|
|
browsewin.find_fuzzy("backingl1.img", "table cell").click()
|
|
browsewin.find("Choose Volume", "push button").click()
|
|
appl.click()
|
|
# Check 'already in use' dialog
|
|
alert = self.app.root.find("vmm dialog", "alert")
|
|
alert.find_fuzzy("already in use by", "label")
|
|
alert.find("Yes", "push button").click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue("backing" in entry.text)
|
|
entry.text = ""
|
|
appl.click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue(not entry.text)
|
|
|
|
|
|
def testMediaHotplug(self):
|
|
"""
|
|
Test in the case of a running VM
|
|
"""
|
|
win = self._open_details_window()
|
|
hw = win.find("hw-list")
|
|
entry = win.find("media-entry")
|
|
appl = win.find("config-apply")
|
|
|
|
# CDROM + physical
|
|
hw.find("IDE CDROM 1", "table cell").click()
|
|
self.assertTrue(not entry.text)
|
|
entry.text = "/dev/sr0"
|
|
appl.click()
|
|
alert = self.app.root.find("vmm dialog", "alert")
|
|
alert.find_fuzzy("changes will take effect", "label")
|
|
alert.find("OK", "push button").click()
|
|
uiutils.check_in_loop(lambda: not appl.sensitive)
|
|
self.assertTrue(not entry.text)
|
|
|
|
# Shutdown the VM, verify change shows up
|
|
win.find("Shut Down", "push button").click()
|
|
run = win.find("Run", "push button")
|
|
uiutils.check_in_loop(lambda: run.sensitive)
|
|
self.assertTrue(entry.text == "Fedora12_media (/dev/sr0)")
|