85 lines
2.6 KiB
Python
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")
|