mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
SPICE was removed earlier; its leftovers and the console type choice go too: - the console settings form, update_console and the backend no longer offer or change the type; an invalid console form now shows its errors instead of being ignored; - the create form, the API serializer and create_instance no longer take a graphics type, new VMs get VNC; get_graphics_types and the graphics entries of the domain capabilities are gone; - migration appsettings.0013 deletes QEMU_CONSOLE_DEFAULT_TYPE; - a VM defined elsewhere with another graphics type gets "Console type ... is not supported". The locale catalogs still reference the deleted SPICE templates in source comments; regenerating them is left to the translation work.
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
import unittest
|
|
from unittest.mock import MagicMock
|
|
|
|
from django.conf import settings
|
|
|
|
if not settings.configured:
|
|
settings.configure(MAC_OUI="52:54:10")
|
|
|
|
from lxml import etree
|
|
from vrtManager.instance import PERSISTENT_XML, wvmInstance
|
|
|
|
LIVE = "<domain><devices><graphics type='vnc' passwd='live' keymap='en-us'><listen type='address'/></graphics></devices></domain>"
|
|
PERSISTENT = "<domain><devices><graphics type='vnc' passwd='old'><listen type='address'/></graphics></devices></domain>"
|
|
|
|
|
|
def running_vm_with_pending_changes():
|
|
vm = wvmInstance.__new__(wvmInstance)
|
|
vm.wvm = MagicMock()
|
|
vm._XMLDesc = MagicMock(side_effect=lambda flags: PERSISTENT if flags == PERSISTENT_XML else LIVE)
|
|
return vm
|
|
|
|
|
|
class ConsoleSettersTestCase(unittest.TestCase):
|
|
"""The graphics device to edit comes from the persistent definition."""
|
|
|
|
def defined_graphics(self, vm):
|
|
return etree.fromstring(vm.wvm.defineXML.call_args[0][0]).find("devices/graphics")
|
|
|
|
def test_setters_edit_the_persistent_graphics_device(self):
|
|
edits = {
|
|
"set_console_passwd": (lambda vm: vm.set_console_passwd("new"), "passwd", "new"),
|
|
"set_console_keymap": (lambda vm: vm.set_console_keymap("de"), "keymap", "de"),
|
|
"set_console_listener_addr": (lambda vm: vm.set_console_listener_addr("127.0.0.1"), "listen", "127.0.0.1"),
|
|
}
|
|
for name, (edit, attr, value) in edits.items():
|
|
with self.subTest(name):
|
|
vm = running_vm_with_pending_changes()
|
|
edit(vm)
|
|
graphics = self.defined_graphics(vm)
|
|
self.assertEqual(graphics.get(attr), value)
|
|
# Built from the persistent device, not the live one
|
|
self.assertNotEqual(graphics.get("passwd"), "live")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|