virt-manager/tests/uitests/test_prefs.py
Cole Robinson c3e9db5f3a createvm: Tweaks to new UEFI pref
* Make it clear in code and UI that this is x86 only. Other arches
  either require UEFI (aarch64) or don't support it
* Drop the internal 'bios' values since we don't handle them and may
  not want them anyways, since when win11 support lands we will need
  to explicitly throw an error if the user tries to force bios
* Add UI tests

Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-01-31 14:18:42 -05:00

135 lines
4.5 KiB
Python

# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
from . import lib
#######################################
# UI tests for the preferences dialog #
#######################################
def testPrefsAll(app):
app.root.find("Edit", "menu").click()
app.root.find("Preferences", "menu item").click()
win = app.find_window("Preferences")
generaltab = win.find("general-tab")
pollingtab = win.find("polling-tab")
newvmtab = win.find("newvm-tab")
consoletab = win.find("console-tab")
feedbacktab = win.find("feedback-tab")
feedbacktab.check_not_onscreen()
tab = generaltab
tab.check_onscreen()
tab.find_fuzzy("Enable system tray", "check").click()
tab.find_fuzzy("Enable XML").click()
tab.find_fuzzy("libguestfs VM").click()
win.find("Polling", "page tab").click()
tab = pollingtab
tab.check_onscreen()
tab.find("Poll CPU", "check box").click()
tab.find("Poll Disk", "check box").click()
tab.find("Poll Memory", "check box").click()
tab.find("Poll Network", "check box").click()
period = tab.find_fuzzy("cpu-poll", "spin button")
period.click()
period.set_text("5")
win.find("New VM", "page tab").click()
tab = newvmtab
tab.check_onscreen()
tab.combo_select("CPU default:", "host-passthrough")
tab.combo_select("Storage format:", "Raw")
tab.combo_select("Graphics type", "VNC")
tab.combo_select("x86 Firmware", "UEFI")
win.find("Console", "page tab").click()
tab = consoletab
tab.check_onscreen()
tab.combo_select("SPICE USB", "Manual redirect")
tab.combo_select("Resize guest", "On")
tab.combo_select("Graphical console scaling", "Always")
tab.find("Console autoconnect", "check box").click()
tab.find("Change...", "push button").click()
keyframe = app.find_window("Configure grab")
# On certain environments pressing "Alt_L" and
# clicking a window starts window drag operation.
# Work around by pushing both Control and Alt.
app.rawinput.holdKey("Control_L")
app.rawinput.holdKey("Alt_L")
app.rawinput.holdKey("Z")
# Test releasekey handler
app.rawinput.releaseKey("Z")
app.rawinput.holdKey("Z")
try:
keyframe.find_fuzzy("OK", "push button").click()
finally:
app.rawinput.releaseKey("Z")
app.rawinput.releaseKey("Alt_L")
app.rawinput.releaseKey("Control_L")
win.find("Feedback", "page tab").click()
tab = feedbacktab
tab.check_onscreen()
tab.find("Force Poweroff", "check box").click()
tab.find("Poweroff/Reboot", "check box").click()
tab.find("Pause", "check box").click()
tab.find("Device removal", "check box").click()
tab.find("Unapplied changes", "check box").click()
tab.find("Deleting storage", "check box").click()
win.find("General", "page tab").click()
win.find_fuzzy("Enable system tray", "check").click()
win.find_fuzzy("Close", "push button").click()
lib.utils.check(lambda: win.visible is False)
def testPrefsXMLEditor(app):
managerwin = app.topwin
detailswin = app.manager_open_details("test-clone-simple")
finish = detailswin.find("config-apply")
xmleditor = detailswin.find("XML editor")
detailswin.find("XML", "page tab").click()
warnlabel = detailswin.find_fuzzy("XML editing is disabled")
lib.utils.check(lambda: warnlabel.visible)
origtext = xmleditor.text
xmleditor.typeText("1234abcd")
lib.utils.check(lambda: xmleditor.text == origtext)
managerwin.grab_focus()
managerwin.find("Edit", "menu").click()
managerwin.find("Preferences", "menu item").click()
prefswin = app.find_window("Preferences")
prefswin.find_fuzzy("Enable XML").click()
prefswin.find_fuzzy("Close", "push button").click()
lib.utils.check(lambda: prefswin.visible is False)
managerwin.window_close()
detailswin.grab_focus()
newtext = xmleditor.text.replace(">", "><title>FOOTITLE</title>", 1)
xmleditor.set_text(newtext)
finish.click()
detailswin.find("Details", "page tab").click()
lib.utils.check(lambda:
detailswin.find("Title:", "text").text == "FOOTITLE")
def testPrefsKeyfile(app):
"""
Preload some keyfile settings and verify they work as expected
"""
app.open(use_uri=False, keyfile="defaultconn.ini")
managerwin = app.topwin
# test:///default should be connected
managerwin.find("test default", "table cell")
managerwin.find("foo - Not Connected", "table cell")