tests: update for recent changes
- create_new_vm rework - especially new VM type selection - minor changes in the main manager table - rework of logs dialog (the test for the actual dialog is still missing, the current one only checks if it's called with proper arguments)
This commit is contained in:
parent
2f48fb33a3
commit
96612fa355
@ -171,8 +171,7 @@ class NewVmTest(unittest.TestCase):
|
|||||||
self.dialog.name.setText("test-vm")
|
self.dialog.name.setText("test-vm")
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "standalone" in opt_text and "template" in opt_text and\
|
if "standalone" in opt_text:
|
||||||
"not based" not in opt_text and "empty" not in opt_text:
|
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -187,10 +186,11 @@ class NewVmTest(unittest.TestCase):
|
|||||||
self.dialog.name.setText("test-vm")
|
self.dialog.name.setText("test-vm")
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "standalone" in opt_text and\
|
if "standalone" in opt_text:
|
||||||
("not based" in opt_text or "empty" in opt_text):
|
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
# select "(none)" template
|
||||||
|
self.dialog.template_vm.setCurrentIndex(self.dialog.template_vm.count()-1)
|
||||||
|
|
||||||
self.__click_ok()
|
self.__click_ok()
|
||||||
self.mock_thread.assert_called_once_with(
|
self.mock_thread.assert_called_once_with(
|
||||||
@ -210,10 +210,11 @@ class NewVmTest(unittest.TestCase):
|
|||||||
|
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "standalone" in opt_text and\
|
if "standalone" in opt_text:
|
||||||
("not based" in opt_text or "empty" in opt_text):
|
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
# select "(none)" template
|
||||||
|
self.dialog.template_vm.setCurrentIndex(self.dialog.template_vm.count()-1)
|
||||||
|
|
||||||
self.dialog.install_system.setChecked(False)
|
self.dialog.install_system.setChecked(False)
|
||||||
|
|
||||||
@ -232,7 +233,7 @@ class NewVmTest(unittest.TestCase):
|
|||||||
# cannot install system on a template-based appvm
|
# cannot install system on a template-based appvm
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "appvm" in opt_text and "standalone" not in opt_text:
|
if "appvm" in opt_text:
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
self.assertFalse(self.dialog.install_system.isEnabled())
|
self.assertFalse(self.dialog.install_system.isEnabled())
|
||||||
@ -242,24 +243,26 @@ class NewVmTest(unittest.TestCase):
|
|||||||
# or on a standalone vm cloned from a template
|
# or on a standalone vm cloned from a template
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "standalone" in opt_text and "template" in opt_text and\
|
if "standalone" in opt_text:
|
||||||
"not based" not in opt_text and "empty" not in opt_text:
|
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
# select default template
|
||||||
|
self.dialog.template_vm.setCurrentIndex(0)
|
||||||
self.assertFalse(self.dialog.install_system.isEnabled())
|
self.assertFalse(self.dialog.install_system.isEnabled())
|
||||||
self.assertTrue(self.dialog.launch_settings.isEnabled())
|
self.assertTrue(self.dialog.launch_settings.isEnabled())
|
||||||
self.assertTrue(self.dialog.template_vm.isEnabled())
|
self.assertTrue(self.dialog.template_vm.isEnabled())
|
||||||
|
|
||||||
# cannot set a template but can install system on a truly empty AppVM
|
# can install system on a truly empty AppVM
|
||||||
for i in range(self.dialog.vm_type.count()):
|
for i in range(self.dialog.vm_type.count()):
|
||||||
opt_text = self.dialog.vm_type.itemText(i).lower()
|
opt_text = self.dialog.vm_type.itemText(i).lower()
|
||||||
if "standalone" in opt_text and\
|
if "standalone" in opt_text:
|
||||||
("not based" in opt_text or "empty" in opt_text):
|
|
||||||
self.dialog.vm_type.setCurrentIndex(i)
|
self.dialog.vm_type.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
self.assertTrue(self.dialog.template_vm.isEnabled())
|
||||||
|
# select "(none)" template
|
||||||
|
self.dialog.template_vm.setCurrentIndex(self.dialog.template_vm.count()-1)
|
||||||
self.assertTrue(self.dialog.install_system.isEnabled())
|
self.assertTrue(self.dialog.install_system.isEnabled())
|
||||||
self.assertTrue(self.dialog.launch_settings.isEnabled())
|
self.assertTrue(self.dialog.launch_settings.isEnabled())
|
||||||
self.assertFalse(self.dialog.template_vm.isEnabled())
|
|
||||||
|
|
||||||
def __click_ok(self):
|
def __click_ok(self):
|
||||||
okwidget = self.dialog.buttonBox.button(
|
okwidget = self.dialog.buttonBox.button(
|
||||||
|
@ -156,9 +156,8 @@ class QubeManagerTest(unittest.TestCase):
|
|||||||
for row in range(self.dialog.table.model().rowCount()):
|
for row in range(self.dialog.table.model().rowCount()):
|
||||||
vm = self._get_table_vm(row)
|
vm = self._get_table_vm(row)
|
||||||
|
|
||||||
incl_backups_item = self._get_table_item(row, "Include in backups")
|
incl_backups_item = self._get_table_item(row, "Backup", Qt.CheckStateRole) == Qt.Checked
|
||||||
incl_backups_value = getattr(vm, 'include_in_backups', False)
|
incl_backups_value = getattr(vm, 'include_in_backups', False)
|
||||||
incl_backups_value = "Yes" if incl_backups_value else ""
|
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
incl_backups_value, incl_backups_item,
|
incl_backups_value, incl_backups_item,
|
||||||
@ -186,7 +185,7 @@ class QubeManagerTest(unittest.TestCase):
|
|||||||
def_dispvm_item = self._get_table_item(row, "Default DispVM")
|
def_dispvm_item = self._get_table_item(row, "Default DispVM")
|
||||||
if vm.property_is_default("default_dispvm"):
|
if vm.property_is_default("default_dispvm"):
|
||||||
def_dispvm_value = "default ({})".format(
|
def_dispvm_value = "default ({})".format(
|
||||||
self.qapp.default_dispvm)
|
vm.property_get_default("default_dispvm"))
|
||||||
else:
|
else:
|
||||||
def_dispvm_value = getattr(vm, "default_dispvm", None)
|
def_dispvm_value = getattr(vm, "default_dispvm", None)
|
||||||
|
|
||||||
@ -313,6 +312,8 @@ class QubeManagerTest(unittest.TestCase):
|
|||||||
def test_204_vm_keyboard(self, mock_message):
|
def test_204_vm_keyboard(self, mock_message):
|
||||||
selected_vm = self._select_non_admin_vm(running=True)
|
selected_vm = self._select_non_admin_vm(running=True)
|
||||||
self.assertIsNotNone(selected_vm, "No valid non-admin VM found")
|
self.assertIsNotNone(selected_vm, "No valid non-admin VM found")
|
||||||
|
if 'supported-feature.keyboard-layout' not in selected_vm.features:
|
||||||
|
self.skipTest("VM {!s} does not support new layout change".format(selected_vm))
|
||||||
widget = self.dialog.toolbar.widgetForAction(
|
widget = self.dialog.toolbar.widgetForAction(
|
||||||
self.dialog.action_set_keyboard_layout)
|
self.dialog.action_set_keyboard_layout)
|
||||||
with unittest.mock.patch.object(selected_vm, 'run') as mock_run:
|
with unittest.mock.patch.object(selected_vm, 'run') as mock_run:
|
||||||
@ -333,9 +334,6 @@ class QubeManagerTest(unittest.TestCase):
|
|||||||
QtCore.Qt.LeftButton)
|
QtCore.Qt.LeftButton)
|
||||||
self.assertEqual(mock_run.call_count, 0,
|
self.assertEqual(mock_run.call_count, 0,
|
||||||
"Keyboard change called on a halted VM")
|
"Keyboard change called on a halted VM")
|
||||||
self.assertEqual(mock_message.call_count, 0,
|
|
||||||
"Keyboard change called on a halted VM with"
|
|
||||||
" obsolete keyboard-layout handling")
|
|
||||||
|
|
||||||
def test_206_dom0_keyboard(self):
|
def test_206_dom0_keyboard(self):
|
||||||
self._select_admin_vm()
|
self._select_admin_vm()
|
||||||
@ -1133,32 +1131,28 @@ class QubeManagerTest(unittest.TestCase):
|
|||||||
else:
|
else:
|
||||||
self.assertEqual(call_count, 0)
|
self.assertEqual(call_count, 0)
|
||||||
|
|
||||||
def test_500_logs(self):
|
@unittest.mock.patch('qubesmanager.log_dialog.LogDialog')
|
||||||
|
def test_500_logs(self, mock_log_dialog):
|
||||||
self._select_admin_vm()
|
self._select_admin_vm()
|
||||||
|
|
||||||
self.assertTrue(self.dialog.logs_menu.isEnabled())
|
self.dialog.action_show_logs.trigger()
|
||||||
|
mock_log_dialog.assert_called_once()
|
||||||
dom0_logs = set()
|
dom0_logs = mock_log_dialog.mock_calls[0][1][1]
|
||||||
for c in self.dialog.logs_menu.actions():
|
for c in dom0_logs:
|
||||||
dom0_logs.add(c.text())
|
self.assertIn("hypervisor", c,
|
||||||
self.assertIsNotNone(
|
|
||||||
c.data(), "Empty log file found: {}".format(c.text()))
|
|
||||||
self.assertIn("hypervisor", c.text(),
|
|
||||||
"Log for dom0 does not contain 'hypervisor'")
|
"Log for dom0 does not contain 'hypervisor'")
|
||||||
|
|
||||||
|
mock_log_dialog.reset_mock()
|
||||||
|
|
||||||
selected_vm = self._select_non_admin_vm(running=True).name
|
selected_vm = self._select_non_admin_vm(running=True).name
|
||||||
|
|
||||||
self.assertTrue(self.dialog.logs_menu.isEnabled())
|
self.dialog.action_show_logs.trigger()
|
||||||
|
mock_log_dialog.assert_called_once()
|
||||||
vm_logs = set()
|
vm_logs = mock_log_dialog.mock_calls[0][1][1]
|
||||||
for c in self.dialog.logs_menu.actions():
|
for c in vm_logs:
|
||||||
vm_logs.add(c.text())
|
|
||||||
self.assertIsNotNone(
|
|
||||||
c.data(),
|
|
||||||
"Empty log file found: {}".format(c.text()))
|
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
selected_vm,
|
selected_vm,
|
||||||
c.text(),
|
c,
|
||||||
"Log for {} does not contain its name".format(selected_vm))
|
"Log for {} does not contain its name".format(selected_vm))
|
||||||
|
|
||||||
self.assertNotEqual(dom0_logs, vm_logs,
|
self.assertNotEqual(dom0_logs, vm_logs,
|
||||||
|
Loading…
Reference in New Issue
Block a user