virt-manager/tests/uitests/createvol.py
Cole Robinson 2266b650a5 preferences: Disable XML editing by default
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.
2019-06-13 07:17:34 -04:00

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)