mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-01-06 13:17:58 +03:00
7f310b32c4
Signed-off-by: Cole Robinson <crobinso@redhat.com>
186 lines
6.8 KiB
Python
186 lines
6.8 KiB
Python
# This work is licensed under the GNU GPLv2 or later.
|
|
# See the COPYING file in the top-level directory.
|
|
|
|
from . import lib
|
|
|
|
|
|
class Host(lib.testcase.UITestCase):
|
|
"""
|
|
UI tests for virt-manager's VM details window
|
|
"""
|
|
|
|
##############
|
|
# Test cases #
|
|
##############
|
|
|
|
def testHostNetworkSmokeTest(self):
|
|
"""
|
|
Verify that each virtual network displays, without error.
|
|
"""
|
|
win = self.app.open_host_window("Virtual Networks")
|
|
lst = win.find("net-list", "table")
|
|
errlabel = win.find("net-error-label", "label")
|
|
lib.utils.walkUIList(self.app, win, lst, lambda: errlabel.showing)
|
|
|
|
# Select XML editor, and reverse walk the list
|
|
win.find("network-grid").find("XML", "page tab").click()
|
|
lib.utils.walkUIList(self.app, win, lst, lambda: errlabel.showing, reverse=True)
|
|
|
|
def testHostNetworkEdit(self):
|
|
"""
|
|
Test edits to net config
|
|
"""
|
|
self.app.open(xmleditor_enabled=True)
|
|
win = self.app.open_host_window("Virtual Networks").find("network-grid")
|
|
finish = win.find("Apply", "push button")
|
|
|
|
# Shut it off, do an XML edit, verify it
|
|
win.find("default", "table cell").click()
|
|
delete = win.find("net-delete", "push button")
|
|
stop = win.find("net-stop", "push button")
|
|
stop.click()
|
|
lib.utils.check(lambda: delete.sensitive)
|
|
win.find("XML", "page tab").click()
|
|
xmleditor = win.find("XML editor")
|
|
origdev = "virbr0"
|
|
newdev = "virbr77"
|
|
xmleditor.set_text(xmleditor.text.replace(origdev, newdev))
|
|
finish.click()
|
|
win.find("Details", "page tab").click()
|
|
netdev = win.find("net-device")
|
|
lib.utils.check(lambda: netdev.text == newdev)
|
|
|
|
# Rename it
|
|
win.find("default", "table cell").click()
|
|
win.find("net-name").set_text("newsort-default")
|
|
finish.click()
|
|
|
|
# Change autostart, trigger it by clicking away
|
|
win.find("newsort-default", "table cell").click()
|
|
win.find("net-autostart").click()
|
|
win.find("netboot", "table cell").click()
|
|
self.app.click_alert_button("There are unapplied changes", "Yes")
|
|
|
|
# Do standard xmleditor tests
|
|
lib.utils.test_xmleditor_interactions(self.app, win, finish)
|
|
|
|
|
|
def testHostStorageSmokeTest(self):
|
|
"""
|
|
Verify that each storage pool displays, without error.
|
|
"""
|
|
win = self.app.open_host_window("Storage")
|
|
lst = win.find("pool-list", "table")
|
|
errlabel = win.find("pool-error-label", "label")
|
|
lib.utils.walkUIList(self.app, win, lst, lambda: errlabel.showing)
|
|
|
|
# Select XML editor, and reverse walk the list
|
|
win.find("storage-grid").find("XML", "page tab").click()
|
|
lib.utils.walkUIList(self.app, win, lst, lambda: errlabel.showing, reverse=True)
|
|
|
|
def testHostStorageEdit(self):
|
|
"""
|
|
Test edits to pool config
|
|
"""
|
|
self.app.open(xmleditor_enabled=True)
|
|
win = self.app.open_host_window("Storage").find("storage-grid")
|
|
finish = win.find("Apply", "push button")
|
|
|
|
# Shut off a pool, do an XML edit, verify it
|
|
win.find("default-pool", "table cell").click()
|
|
delete = win.find("pool-delete", "push button")
|
|
stop = win.find("pool-stop", "push button")
|
|
stop.click()
|
|
lib.utils.check(lambda: delete.sensitive)
|
|
win.find("XML", "page tab").click()
|
|
xmleditor = win.find("XML editor")
|
|
origpath = "/dev/default-pool"
|
|
newpath = "/dev/foo/bar/baz"
|
|
xmleditor.set_text(xmleditor.text.replace(origpath, newpath))
|
|
finish.click()
|
|
win.find("Details", "page tab").click()
|
|
poolloc = win.find("pool-location")
|
|
lib.utils.check(lambda: poolloc.text == newpath)
|
|
|
|
# Rename it
|
|
win.find("default", "table cell").click()
|
|
win.find("pool-name").set_text("newsort-default")
|
|
finish.click()
|
|
|
|
# Change autostart. Trigger it by clicking on new cell
|
|
win.find("newsort-default", "table cell").click()
|
|
win.find("pool-autostart").click()
|
|
win.find("disk-pool", "table cell").click()
|
|
self.app.click_alert_button("There are unapplied changes", "Yes")
|
|
|
|
# Do standard xmleditor tests
|
|
lib.utils.test_xmleditor_interactions(self.app, win, finish)
|
|
|
|
def testHostStorageVolMisc(self):
|
|
"""
|
|
Misc actions involving volumes
|
|
"""
|
|
win = self.app.open_host_window("Storage").find("storage-grid")
|
|
win.find_fuzzy("default-pool", "table cell").click()
|
|
vollist = win.find("vol-list", "table")
|
|
|
|
vol1 = vollist.find("backingl1.img", "table cell")
|
|
vol2 = vollist.find("UPPER", "table cell")
|
|
vol1.check_onscreen()
|
|
vol2.check_not_onscreen()
|
|
win.find("Size", "table column header").click()
|
|
win.find("Size", "table column header").click()
|
|
vol1.check_not_onscreen()
|
|
vol2.check_onscreen()
|
|
|
|
vol2.click(button=3)
|
|
self.app.root.find("Copy Volume Path", "menu item").click()
|
|
from gi.repository import Gdk, Gtk
|
|
clipboard = Gtk.Clipboard.get_default(Gdk.Display.get_default())
|
|
lib.utils.check(lambda: clipboard.wait_for_text() == "/dev/default-pool/UPPER")
|
|
|
|
def testHostConn(self):
|
|
"""
|
|
Change some connection parameters
|
|
"""
|
|
manager = self.app.topwin
|
|
# Disconnect the connection
|
|
c = manager.find_fuzzy("testdriver.xml", "table cell")
|
|
c.click(button=3)
|
|
self.app.root.find("conn-disconnect", "menu item").click()
|
|
lib.utils.check(lambda: "Not Connected" in c.text)
|
|
|
|
# Open Host Details from right click menu
|
|
c.click(button=3)
|
|
self.app.root.find("conn-details", "menu item").click()
|
|
win = self.app.root.find_fuzzy("Connection Details", "frame")
|
|
|
|
# Click the tabs and then back
|
|
win.find_fuzzy("Storage", "tab").click()
|
|
win.find_fuzzy("Network", "tab").click()
|
|
win.find_fuzzy("Overview", "tab").click()
|
|
|
|
# Toggle autoconnect
|
|
win.find("Autoconnect:", "check box").click()
|
|
win.find("Autoconnect:", "check box").click()
|
|
|
|
# Change the name, verify that title bar changed
|
|
win.find("Name:", "text").set_text("FOOBAR")
|
|
self.app.root.find("FOOBAR - Connection Details", "frame")
|
|
|
|
# Open the manager window
|
|
win.find("File", "menu").click()
|
|
win.find("View Manager", "menu item").click()
|
|
lib.utils.check(lambda: manager.active)
|
|
# Confirm connection row is named differently in manager
|
|
manager.find("FOOBAR", "table cell")
|
|
|
|
# Close the manager
|
|
manager.keyCombo("<alt>F4")
|
|
lib.utils.check(lambda: win.active)
|
|
|
|
# Quit app from the file menu
|
|
win.find("File", "menu").click()
|
|
win.find("Quit", "menu item").click()
|
|
lib.utils.check(lambda: not self.app.is_running())
|