mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-03 13:47:18 +03:00
2266b650a5
This adds a field in gsettings and preferences UI to enable XML editing. It's off by default. The XML tab page is still visible, but the textview is not editable, and there's a warning at the top: XML editing is disabled in 'Preferences'. Only enable it if you know what you are doing. When the setting is enabled, the warning goes away and the textview is editable. This puts a roadblock up for people that don't know what they are doing, but still advertises the feature and keeps the UI surface difference fairly small between on/off states.
95 lines
3.2 KiB
Python
95 lines
3.2 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 CreateVol(uiutils.UITestCase):
|
|
"""
|
|
UI tests for the createvol wizard
|
|
"""
|
|
|
|
def _open_create_win(self, hostwin):
|
|
hostwin.find("vol-new", "push button").click()
|
|
win = self.app.root.find(
|
|
"Add a Storage Volume", "frame")
|
|
uiutils.check_in_loop(lambda: win.active)
|
|
return win
|
|
|
|
|
|
##############
|
|
# Test cases #
|
|
##############
|
|
|
|
def testCreateVol(self):
|
|
hostwin = self._open_host_window("Storage")
|
|
poolcell = hostwin.find("default-pool", "table cell")
|
|
poolcell.click()
|
|
win = self._open_create_win(hostwin)
|
|
|
|
# Create a default qcow2 volume
|
|
finish = win.find("Finish", "push button")
|
|
name = win.find("Name:", "text")
|
|
self.assertEqual(name.text, "vol")
|
|
newname = "a-newvol"
|
|
name.text = newname
|
|
win.find("Max Capacity:", "spin button").text = "10.5"
|
|
finish.click()
|
|
|
|
# Delete it
|
|
vollist = hostwin.find("vol-list", "table")
|
|
volcell = vollist.find(newname + ".qcow2")
|
|
volcell.click()
|
|
hostwin.find("vol-refresh", "push button").click()
|
|
hostwin.find("vol-delete", "push button").click()
|
|
alert = self.app.root.find("vmm dialog", "alert")
|
|
alert.find_fuzzy("permanently delete the volume", "label")
|
|
alert.find("Yes", "push button").click()
|
|
uiutils.check_in_loop(lambda: volcell.dead)
|
|
|
|
|
|
# Create a raw volume too
|
|
win = self._open_create_win(hostwin)
|
|
newname = "a-newvol.raw"
|
|
name.text = newname
|
|
combo = win.find("Format:", "combo box")
|
|
combo.click_combo_entry()
|
|
combo.find("raw", "menu item").click()
|
|
win.find("Allocation:", "spin button").text = "0.5"
|
|
finish.click()
|
|
vollist.find(newname)
|
|
|
|
# Ensure host window closes fine
|
|
hostwin.keyCombo("<ctrl>w")
|
|
uiutils.check_in_loop(lambda: not hostwin.showing and
|
|
not hostwin.active)
|
|
|
|
|
|
def testCreateVolXMLEditor(self):
|
|
self.app.open(xmleditor_enabled=True)
|
|
hostwin = self._open_host_window("Storage")
|
|
poolcell = hostwin.find("default-pool", "table cell")
|
|
poolcell.click()
|
|
win = self._open_create_win(hostwin)
|
|
finish = win.find("Finish", "push button")
|
|
name = win.find("Name:", "text")
|
|
vollist = hostwin.find("vol-list", "table")
|
|
|
|
# Create a new obj with XML edited name, verify it worked
|
|
tmpname = "objtmpname"
|
|
newname = "aafroofroo"
|
|
name.text = tmpname
|
|
win.find("XML", "page tab").click()
|
|
xmleditor = win.find("XML editor")
|
|
xmleditor.text = xmleditor.text.replace(
|
|
">%s.qcow2<" % tmpname, ">%s<" % newname)
|
|
finish.click()
|
|
uiutils.check_in_loop(lambda: hostwin.active)
|
|
vollist.find(newname)
|
|
|
|
# Do standard xmleditor tests
|
|
win = self._open_create_win(hostwin)
|
|
self._test_xmleditor_interactions(win, finish)
|
|
win.find("Cancel", "push button").click()
|
|
uiutils.check_in_loop(lambda: not win.visible)
|