virt-manager/tests/uitests/clonevm.py

85 lines
2.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 CloneVM(uiutils.UITestCase):
"""
UI tests for virt-manager's CloneVM wizard
"""
###################
# Private helpers #
###################
def _open_window(self, vmname):
# Launch wizard via right click menu
c = self.app.root.find_fuzzy(vmname, "table cell")
c.click(button=3)
self.app.root.find("Clone...", "menu item").click()
return self.app.root.find("Clone Virtual Machine", "frame")
##############
# Test cases #
##############
def testClone(self):
"""
Clone test-clone, which is meant to hit many clone code paths
"""
win = self._open_window("test-clone")
win.find("Clone", "push button").click()
# Verify the new VM popped up
self.app.root.find("test-clone1", "table cell")
def testCloneSimple(self):
"""
Clone test-clone-simple
"""
win = self._open_window("test-clone-simple")
win.find("Clone", "push button").click()
# Verify the new VM popped up
self.app.root.find("test-clone-simple-clone", "table cell")
def testFullClone(self):
"""
Clone test-full-clone, which should error due to lack of space
"""
win = self._open_window("test-clone-full")
win.find("Clone", "push button").click()
# Verify error dialog popped up
self.app.root.find(
".*There is not enough free space.*", "label")
def testCloneTweaks(self):
"""
Clone test-clone-simple, but tweak bits in the clone UI
"""
win = self._open_window("test-clone-simple")
win.find_fuzzy(None,
"text", "Name").text = "test-new-vm"
win.find("Details...", "push button").click()
macwin = self.app.root.find("Change MAC address", "dialog")
macwin.find(None,
"text", "New MAC:").text = "00:16:3e:cc:cf:05"
macwin.find("OK", "push button").click()
win.find_fuzzy("Clone this disk.*", "combo box").click()
win.find_fuzzy("Details...", "menu item").click()
stgwin = self.app.root.find("Change storage path", "dialog")
stgwin.find(None, "text",
"New Path:").text = "/dev/default-pool/my-new-path"
stgwin.find("OK", "push button").click()
win.find("Clone", "push button").click()
# Verify the new VM popped up
self.app.root.find("test-new-vm", "table cell")