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:
Marek Marczykowski-Górecki 2021-01-09 05:55:34 +01:00
parent 2f48fb33a3
commit 96612fa355
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724
2 changed files with 34 additions and 37 deletions

View File

@ -171,8 +171,7 @@ class NewVmTest(unittest.TestCase):
self.dialog.name.setText("test-vm")
for i in range(self.dialog.vm_type.count()):
opt_text = self.dialog.vm_type.itemText(i).lower()
if "standalone" in opt_text and "template" in opt_text and\
"not based" not in opt_text and "empty" not in opt_text:
if "standalone" in opt_text:
self.dialog.vm_type.setCurrentIndex(i)
break
@ -187,10 +186,11 @@ class NewVmTest(unittest.TestCase):
self.dialog.name.setText("test-vm")
for i in range(self.dialog.vm_type.count()):
opt_text = self.dialog.vm_type.itemText(i).lower()
if "standalone" in opt_text and\
("not based" in opt_text or "empty" in opt_text):
if "standalone" in opt_text:
self.dialog.vm_type.setCurrentIndex(i)
break
# select "(none)" template
self.dialog.template_vm.setCurrentIndex(self.dialog.template_vm.count()-1)
self.__click_ok()
self.mock_thread.assert_called_once_with(
@ -210,10 +210,11 @@ class NewVmTest(unittest.TestCase):
for i in range(self.dialog.vm_type.count()):
opt_text = self.dialog.vm_type.itemText(i).lower()
if "standalone" in opt_text and\
("not based" in opt_text or "empty" in opt_text):
if "standalone" in opt_text:
self.dialog.vm_type.setCurrentIndex(i)
break
# select "(none)" template
self.dialog.template_vm.setCurrentIndex(self.dialog.template_vm.count()-1)
self.dialog.install_system.setChecked(False)
@ -232,7 +233,7 @@ class NewVmTest(unittest.TestCase):
# cannot install system on a template-based appvm
for i in range(self.dialog.vm_type.count()):
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)
break
self.assertFalse(self.dialog.install_system.isEnabled())
@ -242,24 +243,26 @@ class NewVmTest(unittest.TestCase):
# or on a standalone vm cloned from a template
for i in range(self.dialog.vm_type.count()):
opt_text = self.dialog.vm_type.itemText(i).lower()
if "standalone" in opt_text and "template" in opt_text and\
"not based" not in opt_text and "empty" not in opt_text:
if "standalone" in opt_text:
self.dialog.vm_type.setCurrentIndex(i)
break
# select default template
self.dialog.template_vm.setCurrentIndex(0)
self.assertFalse(self.dialog.install_system.isEnabled())
self.assertTrue(self.dialog.launch_settings.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()):
opt_text = self.dialog.vm_type.itemText(i).lower()
if "standalone" in opt_text and\
("not based" in opt_text or "empty" in opt_text):
if "standalone" in opt_text:
self.dialog.vm_type.setCurrentIndex(i)
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.launch_settings.isEnabled())
self.assertFalse(self.dialog.template_vm.isEnabled())
def __click_ok(self):
okwidget = self.dialog.buttonBox.button(

View File

@ -156,9 +156,8 @@ class QubeManagerTest(unittest.TestCase):
for row in range(self.dialog.table.model().rowCount()):
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 = "Yes" if incl_backups_value else ""
self.assertEqual(
incl_backups_value, incl_backups_item,
@ -186,7 +185,7 @@ class QubeManagerTest(unittest.TestCase):
def_dispvm_item = self._get_table_item(row, "Default DispVM")
if vm.property_is_default("default_dispvm"):
def_dispvm_value = "default ({})".format(
self.qapp.default_dispvm)
vm.property_get_default("default_dispvm"))
else:
def_dispvm_value = getattr(vm, "default_dispvm", None)
@ -313,6 +312,8 @@ class QubeManagerTest(unittest.TestCase):
def test_204_vm_keyboard(self, mock_message):
selected_vm = self._select_non_admin_vm(running=True)
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(
self.dialog.action_set_keyboard_layout)
with unittest.mock.patch.object(selected_vm, 'run') as mock_run:
@ -333,9 +334,6 @@ class QubeManagerTest(unittest.TestCase):
QtCore.Qt.LeftButton)
self.assertEqual(mock_run.call_count, 0,
"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):
self._select_admin_vm()
@ -1133,32 +1131,28 @@ class QubeManagerTest(unittest.TestCase):
else:
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.assertTrue(self.dialog.logs_menu.isEnabled())
dom0_logs = set()
for c in self.dialog.logs_menu.actions():
dom0_logs.add(c.text())
self.assertIsNotNone(
c.data(), "Empty log file found: {}".format(c.text()))
self.assertIn("hypervisor", c.text(),
self.dialog.action_show_logs.trigger()
mock_log_dialog.assert_called_once()
dom0_logs = mock_log_dialog.mock_calls[0][1][1]
for c in dom0_logs:
self.assertIn("hypervisor", c,
"Log for dom0 does not contain 'hypervisor'")
mock_log_dialog.reset_mock()
selected_vm = self._select_non_admin_vm(running=True).name
self.assertTrue(self.dialog.logs_menu.isEnabled())
vm_logs = set()
for c in self.dialog.logs_menu.actions():
vm_logs.add(c.text())
self.assertIsNotNone(
c.data(),
"Empty log file found: {}".format(c.text()))
self.dialog.action_show_logs.trigger()
mock_log_dialog.assert_called_once()
vm_logs = mock_log_dialog.mock_calls[0][1][1]
for c in vm_logs:
self.assertIn(
selected_vm,
c.text(),
c,
"Log for {} does not contain its name".format(selected_vm))
self.assertNotEqual(dom0_logs, vm_logs,