File 3002.2-xen-spicevmc-dns-srv-records-backports-314.patch of Package salt.21868

From 0b90e8db82991daf19dd76ebccd651ffcffdecb1 Mon Sep 17 00:00:00 2001
From: Cedric Bosdonnat <cbosdonnat@suse.com>
Date: Mon, 8 Feb 2021 16:42:47 +0100
Subject: [PATCH] 3002.2 Xen spicevmc, DNS SRV records backports (#314)

* Fix virtual network generated DNS XML for SRV records

libvirt network's srv element doesn't take a `name` property but a
`service` one.

* Add missing property in virt.network_define dns srv doc

* virt: convert spice generation tests to pytests

* virt: don't add spicevmc channel to Xen VMs

Xen fully virtualized VMs with spicevmc channel fail to start, so better
not write it out in such cases.

* virt: inverse the remaining asserts in pytests
---
 changelog/59416.fixed                         |   1 +
 salt/modules/virt.py                          |   2 +-
 salt/templates/virt/libvirt_domain.jinja      |   2 +-
 salt/templates/virt/libvirt_network.jinja     |   2 +-
 .../pytests/unit/modules/virt/test_domain.py  | 176 ++++++++++++------
 .../pytests/unit/modules/virt/test_helpers.py |   6 +-
 tests/pytests/unit/modules/virt/test_host.py  |   4 +-
 .../pytests/unit/modules/virt/test_network.py |  61 +++---
 tests/pytests/unit/states/virt/test_domain.py | 144 +++++++-------
 .../pytests/unit/states/virt/test_network.py  |  88 ++++-----
 tests/unit/modules/test_virt.py               |  59 ------
 11 files changed, 281 insertions(+), 264 deletions(-)
 create mode 100644 changelog/59416.fixed

diff --git a/changelog/59416.fixed b/changelog/59416.fixed
new file mode 100644
index 0000000000..820124e99a
--- /dev/null
+++ b/changelog/59416.fixed
@@ -0,0 +1 @@
+Don't create spicevmc channel for Xen virtual machines
diff --git a/salt/modules/virt.py b/salt/modules/virt.py
index 7da35445a3..da132630dd 100644
--- a/salt/modules/virt.py
+++ b/salt/modules/virt.py
@@ -7108,7 +7108,7 @@ def network_define(
     srvs:
         List of SRV DNS entries.
         Each entry is a dictionary with the mandatory ``name`` and ``protocol`` keys.
-        Entries can also have ``target``, ``port``, ``priority`` and ``weight`` optional properties.
+        Entries can also have ``target``, ``port``, ``priority``, ``domain`` and ``weight`` optional properties.
 
     CLI Example:
 
diff --git a/salt/templates/virt/libvirt_domain.jinja b/salt/templates/virt/libvirt_domain.jinja
index 4603dfd8de..6772b0db56 100644
--- a/salt/templates/virt/libvirt_domain.jinja
+++ b/salt/templates/virt/libvirt_domain.jinja
@@ -285,7 +285,7 @@
       autoport='{{ yesno(not graphics.port and not graphics.tls_port) }}'>
       <listen type='{{ graphics.listen.type }}'{{ opt_attribute(graphics.listen, "address") }}/>
     </graphics>
-  {%- if graphics.type == "spice" %}
+  {%- if graphics.type == "spice" and hypervisor in ["qemu", "kvm"] %}
     <channel type='spicevmc'>
       <target type='virtio' name='com.redhat.spice.0'/>
     </channel>
diff --git a/salt/templates/virt/libvirt_network.jinja b/salt/templates/virt/libvirt_network.jinja
index ab14408712..98bd6567b8 100644
--- a/salt/templates/virt/libvirt_network.jinja
+++ b/salt/templates/virt/libvirt_network.jinja
@@ -65,7 +65,7 @@
     </host>
   {%- endfor %}
   {%- for srv in dns.srvs %}
-    <srv name='{{ srv.name }}' protocol='{{ srv.protocol }}'
+    <srv service='{{ srv.name }}' protocol='{{ srv.protocol }}'
        {{ opt_attribute(srv, "port") }}
        {{ opt_attribute(srv, "target") }}
        {{ opt_attribute(srv, "priority") }}
diff --git a/tests/pytests/unit/modules/virt/test_domain.py b/tests/pytests/unit/modules/virt/test_domain.py
index 33357c60ea..72fa599a6c 100644
--- a/tests/pytests/unit/modules/virt/test_domain.py
+++ b/tests/pytests/unit/modules/virt/test_domain.py
@@ -60,13 +60,14 @@ def test_update_xen_disk_volumes(make_mock_vm, make_mock_storage_pool):
     assert ret["definition"]
     virt.libvirt.openAuth().defineXML = virt.libvirt.openAuth().defineXML
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "block" == setxml.find(".//disk[3]").get("type")
-    assert "/path/to/vdb/vdb1" == setxml.find(".//disk[3]/source").get("dev")
+    assert setxml.find(".//disk[3]").get("type") == "block"
+    assert setxml.find(".//disk[3]/source").get("dev") == "/path/to/vdb/vdb1"
 
     # Note that my_vm-file-data was not an existing volume before the update
-    assert "file" == setxml.find(".//disk[4]").get("type")
-    assert "/path/to/default/my_vm_file-data" == setxml.find(".//disk[4]/source").get(
-        "file"
+    assert setxml.find(".//disk[4]").get("type") == "file"
+    assert (
+        setxml.find(".//disk[4]/source").get("file")
+        == "/path/to/default/my_vm_file-data"
     )
 
 
@@ -242,7 +243,7 @@ def test_get_disk_convert_volumes(make_mock_vm, make_mock_storage_pool):
     subprocess_mock.Popen = popen_mock
 
     with patch.dict(virt.__dict__, {"subprocess": subprocess_mock}):
-        assert {
+        assert virt.get_disks("srv01") == {
             "vda": {
                 "type": "disk",
                 "file": "default/srv01_system",
@@ -265,7 +266,7 @@ def test_get_disk_convert_volumes(make_mock_vm, make_mock_storage_pool):
                 "disk size": 340525056,
                 "virtual size": 214748364800,
             },
-        } == virt.get_disks("srv01")
+        }
 
 
 def test_update_approx_mem(make_mock_vm):
@@ -308,7 +309,7 @@ def test_gen_hypervisor_features():
         hypervisor_features={"kvm-hint-dedicated": True},
     )
     root = ET.fromstring(xml_data)
-    assert "on" == root.find("features/kvm/hint-dedicated").attrib["state"]
+    assert root.find("features/kvm/hint-dedicated").attrib["state"] == "on"
 
 
 def test_update_hypervisor_features(make_mock_vm):
@@ -343,7 +344,7 @@ def test_update_hypervisor_features(make_mock_vm):
     ret = virt.update("my_vm", hypervisor_features={"kvm-hint-dedicated": False})
     assert ret["definition"]
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "off" == setxml.find("features/kvm/hint-dedicated").get("state")
+    assert setxml.find("features/kvm/hint-dedicated").get("state") == "off"
 
     # Add the features
     xml_def = """
@@ -362,7 +363,7 @@ def test_update_hypervisor_features(make_mock_vm):
     ret = virt.update("my_vm", hypervisor_features={"kvm-hint-dedicated": True})
     assert ret["definition"]
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "on" == setxml.find("features/kvm/hint-dedicated").get("state")
+    assert setxml.find("features/kvm/hint-dedicated").get("state") == "on"
 
 
 def test_gen_clock():
@@ -383,8 +384,8 @@ def test_gen_clock():
         clock={"adjustment": 3600, "utc": False},
     )
     root = ET.fromstring(xml_data)
-    assert "localtime" == root.find("clock").get("offset")
-    assert "3600" == root.find("clock").get("adjustment")
+    assert root.find("clock").get("offset") == "localtime"
+    assert root.find("clock").get("adjustment") == "3600"
 
     # Specific timezone
     xml_data = virt._gen_xml(
@@ -400,8 +401,8 @@ def test_gen_clock():
         clock={"timezone": "CEST"},
     )
     root = ET.fromstring(xml_data)
-    assert "timezone" == root.find("clock").get("offset")
-    assert "CEST" == root.find("clock").get("timezone")
+    assert root.find("clock").get("offset") == "timezone"
+    assert root.find("clock").get("timezone") == "CEST"
 
     # UTC
     xml_data = virt._gen_xml(
@@ -417,7 +418,7 @@ def test_gen_clock():
         clock={"utc": True},
     )
     root = ET.fromstring(xml_data)
-    assert "utc" == root.find("clock").get("offset")
+    assert root.find("clock").get("offset") == "utc"
 
     # Timers
     xml_data = virt._gen_xml(
@@ -444,14 +445,16 @@ def test_gen_clock():
         },
     )
     root = ET.fromstring(xml_data)
-    assert "utc" == root.find("clock").get("offset")
-    assert "3504000000" == root.find("clock/timer[@name='tsc']").get("frequency")
-    assert "native" == root.find("clock/timer[@name='tsc']").get("mode")
-    assert "catchup" == root.find("clock/timer[@name='rtc']").get("tickpolicy")
-    assert {"slew": "4636", "threshold": "123", "limit": "2342"} == root.find(
-        "clock/timer[@name='rtc']/catchup"
-    ).attrib
-    assert "no" == root.find("clock/timer[@name='hpet']").get("present")
+    assert root.find("clock").get("offset") == "utc"
+    assert root.find("clock/timer[@name='tsc']").get("frequency") == "3504000000"
+    assert root.find("clock/timer[@name='tsc']").get("mode") == "native"
+    assert root.find("clock/timer[@name='rtc']").get("tickpolicy") == "catchup"
+    assert root.find("clock/timer[@name='rtc']/catchup").attrib == {
+        "slew": "4636",
+        "threshold": "123",
+        "limit": "2342",
+    }
+    assert root.find("clock/timer[@name='hpet']").get("present") == "no"
 
 
 def test_update_clock(make_mock_vm):
@@ -510,21 +513,23 @@ def test_update_clock(make_mock_vm):
     )
     assert ret["definition"]
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "timezone" == setxml.find("clock").get("offset")
-    assert "CEST" == setxml.find("clock").get("timezone")
-    assert {"rtc", "hpet"} == {t.get("name") for t in setxml.findall("clock/timer")}
-    assert "catchup" == setxml.find("clock/timer[@name='rtc']").get("tickpolicy")
-    assert "wall" == setxml.find("clock/timer[@name='rtc']").get("track")
-    assert {"slew": "4636", "threshold": "123", "limit": "2342"} == setxml.find(
-        "clock/timer[@name='rtc']/catchup"
-    ).attrib
-    assert "yes" == setxml.find("clock/timer[@name='hpet']").get("present")
+    assert setxml.find("clock").get("offset") == "timezone"
+    assert setxml.find("clock").get("timezone") == "CEST"
+    assert {t.get("name") for t in setxml.findall("clock/timer")} == {"rtc", "hpet"}
+    assert setxml.find("clock/timer[@name='rtc']").get("tickpolicy") == "catchup"
+    assert setxml.find("clock/timer[@name='rtc']").get("track") == "wall"
+    assert setxml.find("clock/timer[@name='rtc']/catchup").attrib == {
+        "slew": "4636",
+        "threshold": "123",
+        "limit": "2342",
+    }
+    assert setxml.find("clock/timer[@name='hpet']").get("present") == "yes"
 
     # Revert to UTC
     ret = virt.update("my_vm", clock={"utc": True, "adjustment": None, "timers": None})
     assert ret["definition"]
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert {"offset": "utc"} == setxml.find("clock").attrib
+    assert setxml.find("clock").attrib == {"offset": "utc"}
     assert setxml.find("clock/timer") is None
 
 
@@ -550,7 +555,7 @@ def test_update_stop_on_reboot_reset(make_mock_vm):
     assert ret["definition"]
     virt.libvirt.openAuth().defineXML = virt.libvirt.openAuth().defineXML
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "restart" == setxml.find("./on_reboot").text
+    assert setxml.find("./on_reboot").text == "restart"
 
 
 def test_update_stop_on_reboot(make_mock_vm):
@@ -574,7 +579,7 @@ def test_update_stop_on_reboot(make_mock_vm):
     assert ret["definition"]
     virt.libvirt.openAuth().defineXML = virt.libvirt.openAuth().defineXML
     setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-    assert "destroy" == setxml.find("./on_reboot").text
+    assert setxml.find("./on_reboot").text == "destroy"
 
 
 def test_init_no_stop_on_reboot(make_capabilities):
@@ -587,7 +592,7 @@ def test_init_no_stop_on_reboot(make_capabilities):
             virt.init("test_vm", 2, 2048, start=False)
             virt.libvirt.openAuth().defineXML = virt.libvirt.openAuth().defineXML
             setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-            assert "restart" == setxml.find("./on_reboot").text
+            assert setxml.find("./on_reboot").text == "restart"
 
 
 def test_init_stop_on_reboot(make_capabilities):
@@ -600,7 +605,7 @@ def test_init_stop_on_reboot(make_capabilities):
             virt.init("test_vm", 2, 2048, stop_on_reboot=True, start=False)
             virt.libvirt.openAuth().defineXML = virt.libvirt.openAuth().defineXML
             setxml = ET.fromstring(virt.libvirt.openAuth().defineXML.call_args[0][0])
-            assert "destroy" == setxml.find("./on_reboot").text
+            assert setxml.find("./on_reboot").text == "destroy"
 
 
 def test_init_hostdev_usb(make_capabilities, make_mock_device):
@@ -642,8 +647,8 @@ def test_init_hostdev_usb(make_capabilities, make_mock_device):
                 </hostdev>
                 """
             )
-            assert expected_xml == strip_xml(
-                ET.tostring(setxml.find("./devices/hostdev"))
+            assert (
+                strip_xml(ET.tostring(setxml.find("./devices/hostdev"))) == expected_xml
             )
 
 
@@ -684,8 +689,8 @@ def test_init_hostdev_pci(make_capabilities, make_mock_device):
                 </hostdev>
                 """
             )
-            assert expected_xml == strip_xml(
-                ET.tostring(setxml.find("./devices/hostdev"))
+            assert (
+                strip_xml(ET.tostring(setxml.find("./devices/hostdev"))) == expected_xml
             )
 
 
@@ -858,11 +863,11 @@ def test_update_hostdev_changes(running, live, make_mock_device, make_mock_vm, t
             ET.tostring(xmlutil.strip_spaces(node))
             for node in set_xml.findall("./devices/hostdev")
         ]
-        assert [usb_device_xml] == actual_hostdevs
+        assert actual_hostdevs == [usb_device_xml]
 
     if not test and live:
         attach_xml = strip_xml(domain_mock.attachDevice.call_args[0][0])
-        assert usb_device_xml == attach_xml
+        assert attach_xml == usb_device_xml
 
         pci_device_xml = strip_xml(
             """
@@ -875,7 +880,7 @@ def test_update_hostdev_changes(running, live, make_mock_device, make_mock_vm, t
             """
         )
         detach_xml = strip_xml(domain_mock.detachDevice.call_args[0][0])
-        assert pci_device_xml == detach_xml
+        assert detach_xml == pci_device_xml
     else:
         domain_mock.attachDevice.assert_not_called()
         domain_mock.detachDevice.assert_not_called()
@@ -932,14 +937,16 @@ def test_diff_nics():
     """
     ).findall("interface")
     ret = virt._diff_interface_lists(old_nics, new_nics)
-    assert ["52:54:00:39:02:b1"] == [
-        nic.find("mac").get("address") for nic in ret["unchanged"]
+    assert [nic.find("mac").get("address") for nic in ret["unchanged"]] == [
+        "52:54:00:39:02:b1"
     ]
-    assert ["52:54:00:39:02:b2", "52:54:00:39:02:b4"] == [
-        nic.find("mac").get("address") for nic in ret["new"]
+    assert [nic.find("mac").get("address") for nic in ret["new"]] == [
+        "52:54:00:39:02:b2",
+        "52:54:00:39:02:b4",
     ]
-    assert ["52:54:00:39:02:b2", "52:54:00:39:02:b3"] == [
-        nic.find("mac").get("address") for nic in ret["deleted"]
+    assert [nic.find("mac").get("address") for nic in ret["deleted"]] == [
+        "52:54:00:39:02:b2",
+        "52:54:00:39:02:b3",
     ]
 
 
@@ -986,8 +993,9 @@ def test_diff_nics_live_nochange():
         """
     )
     ret = virt._diff_interface_lists(old_nics, new_nics)
-    assert ["52:54:00:03:02:15", "52:54:00:ea:2e:89"] == [
-        nic.find("mac").get("address") for nic in ret["unchanged"]
+    assert [nic.find("mac").get("address") for nic in ret["unchanged"]] == [
+        "52:54:00:03:02:15",
+        "52:54:00:ea:2e:89",
     ]
 
 
@@ -1270,7 +1278,7 @@ def test_update_bootdev_unchanged(make_mock_vm, boot_dev):
         """
     )
     ret = virt.update("my_vm", boot_dev=boot_dev)
-    assert (boot_dev != "hd") == ret["definition"]
+    assert ret["definition"] == (boot_dev != "hd")
     if boot_dev == "hd":
         virt.libvirt.openAuth().defineXML.assert_not_called()
     else:
@@ -2048,3 +2056,65 @@ def test_update_failure(make_mock_vm):
         "disk": {"attached": [], "detached": [], "updated": []},
         "interface": {"attached": [], "detached": []},
     }
+
+@pytest.mark.parametrize("hypervisor", ["kvm", "xen"])
+def test_gen_xml_spice_default(hypervisor):
+    """
+    Test virt._gen_xml() with default spice graphics device
+    """
+    xml_data = virt._gen_xml(
+        virt.libvirt.openAuth.return_value,
+        "hello",
+        1,
+        512,
+        {},
+        {},
+        hypervisor,
+        "hvm",
+        "x86_64",
+        graphics={"type": "spice"},
+    )
+    root = ET.fromstring(xml_data)
+    assert root.find("devices/graphics").attrib["type"] == "spice"
+    assert root.find("devices/graphics").attrib["autoport"] == "yes"
+    assert root.find("devices/graphics").attrib["listen"] == "0.0.0.0"
+    assert root.find("devices/graphics/listen").attrib["type"] == "address"
+    assert root.find("devices/graphics/listen").attrib["address"] == "0.0.0.0"
+    if hypervisor == "kvm":
+        assert (
+            root.find(".//channel[@type='spicevmc']/target").get("name")
+            == "com.redhat.spice.0"
+        )
+    else:
+        assert root.find(".//channel[@type='spicevmc']") is None
+
+
+def test_gen_xml_spice():
+    """
+    Test virt._gen_xml() with spice graphics device
+    """
+    xml_data = virt._gen_xml(
+        virt.libvirt.openAuth.return_value,
+        "hello",
+        1,
+        512,
+        {},
+        {},
+        "kvm",
+        "hvm",
+        "x86_64",
+        graphics={
+            "type": "spice",
+            "port": 1234,
+            "tls_port": 5678,
+            "listen": {"type": "none"},
+        },
+    )
+    root = ET.fromstring(xml_data)
+    assert root.find("devices/graphics").attrib["type"] == "spice"
+    assert root.find("devices/graphics").attrib["autoport"] == "no"
+    assert root.find("devices/graphics").attrib["port"] == "1234"
+    assert root.find("devices/graphics").attrib["tlsPort"] == "5678"
+    assert "listen" not in root.find("devices/graphics").attrib
+    assert root.find("devices/graphics/listen").attrib["type"] == "none"
+    assert "address" not in root.find("devices/graphics/listen").attrib
diff --git a/tests/pytests/unit/modules/virt/test_helpers.py b/tests/pytests/unit/modules/virt/test_helpers.py
index 70f5a8a31f..30c4a66b7d 100644
--- a/tests/pytests/unit/modules/virt/test_helpers.py
+++ b/tests/pytests/unit/modules/virt/test_helpers.py
@@ -12,12 +12,12 @@ def append_to_XMLDesc(mocked, fragment):
     mocked.XMLDesc.return_value = ET.tostring(xml_doc)
 
 
-def assert_xml_equals(expected, actual):
+def assert_xml_equals(actual, expected):
     """
     Assert that two ElementTree nodes are equal
     """
-    assert xmlutil.to_dict(xmlutil.strip_spaces(expected), True) == xmlutil.to_dict(
-        xmlutil.strip_spaces(actual), True
+    assert xmlutil.to_dict(xmlutil.strip_spaces(actual), True) == xmlutil.to_dict(
+        xmlutil.strip_spaces(expected), True
     )
 
 
diff --git a/tests/pytests/unit/modules/virt/test_host.py b/tests/pytests/unit/modules/virt/test_host.py
index 555deb23bb..6c9ac79337 100644
--- a/tests/pytests/unit/modules/virt/test_host.py
+++ b/tests/pytests/unit/modules/virt/test_host.py
@@ -173,7 +173,7 @@ def test_node_devices(make_mock_device):
     ]
     virt.libvirt.openAuth().listAllDevices.return_value = mock_devs
 
-    assert [
+    assert virt.node_devices() == [
         {
             "name": "pci_1002_71c4",
             "caps": "pci",
@@ -216,4 +216,4 @@ def test_node_devices(make_mock_device):
             "state": "down",
             "device name": "pci_0000_02_10_7",
         },
-    ] == virt.node_devices()
+    ]
diff --git a/tests/pytests/unit/modules/virt/test_network.py b/tests/pytests/unit/modules/virt/test_network.py
index e7e544c580..52aadc9519 100644
--- a/tests/pytests/unit/modules/virt/test_network.py
+++ b/tests/pytests/unit/modules/virt/test_network.py
@@ -18,10 +18,10 @@ def test_gen_xml():
     """
     xml_data = virt._gen_net_xml("network", "main", "bridge", "openvswitch")
     root = ET.fromstring(xml_data)
-    assert "network" == root.find("name").text
-    assert "main" == root.find("bridge").attrib["name"]
-    assert "bridge" == root.find("forward").attrib["mode"]
-    assert "openvswitch" == root.find("virtualport").attrib["type"]
+    assert root.find("name").text == "network"
+    assert root.find("bridge").attrib["name"] == "main"
+    assert root.find("forward").attrib["mode"] == "bridge"
+    assert root.find("virtualport").attrib["type"] == "openvswitch"
 
 
 def test_gen_xml_nat():
@@ -68,9 +68,9 @@ def test_gen_xml_nat():
         mtu=9000,
     )
     root = ET.fromstring(xml_data)
-    assert "network" == root.find("name").text
-    assert "main" == root.find("bridge").attrib["name"]
-    assert "nat" == root.find("forward").attrib["mode"]
+    assert root.find("name").text == "network"
+    assert root.find("bridge").attrib["name"] == "main"
+    assert root.find("forward").attrib["mode"] == "nat"
     expected_ipv4 = ET.fromstring(
         """
         <ip family='ipv4' address='192.168.2.1' prefix='24'>
@@ -84,7 +84,7 @@ def test_gen_xml_nat():
         </ip>
         """
     )
-    assert_xml_equals(expected_ipv4, root.find("./ip[@address='192.168.2.1']"))
+    assert_xml_equals(root.find("./ip[@address='192.168.2.1']"), expected_ipv4)
 
     expected_ipv6 = ET.fromstring(
         """
@@ -96,7 +96,7 @@ def test_gen_xml_nat():
         </ip>
         """
     )
-    assert_xml_equals(expected_ipv6, root.find("./ip[@address='2001:db8:ca2:2::1']"))
+    assert_xml_equals(root.find("./ip[@address='2001:db8:ca2:2::1']"), expected_ipv6)
 
     actual_nat = ET.tostring(xmlutil.strip_spaces(root.find("./forward/nat")))
     expected_nat = strip_xml(
@@ -107,10 +107,10 @@ def test_gen_xml_nat():
         </nat>
         """
     )
-    assert expected_nat == actual_nat
+    assert actual_nat == expected_nat
 
-    assert {"name": "acme.lab", "localOnly": "yes"} == root.find("./domain").attrib
-    assert "9000" == root.find("mtu").get("size")
+    assert root.find("./domain").attrib == {"name": "acme.lab", "localOnly": "yes"}
+    assert root.find("mtu").get("size") == "9000"
 
 
 def test_gen_xml_dns():
@@ -166,12 +166,12 @@ def test_gen_xml_dns():
             <hostname>mirror.acme.lab</hostname>
             <hostname>test.acme.lab</hostname>
           </host>
-          <srv name='srv1' protocol='tcp' port='1024' target='.' priority='10' weight='10' domain='test-domain-name'/>
-          <srv name='srv2' protocol='udp'/>
+          <srv service='srv1' protocol='tcp' port='1024' target='.' priority='10' weight='10' domain='test-domain-name'/>
+          <srv service='srv2' protocol='udp'/>
         </dns>
         """
     )
-    assert_xml_equals(expected_xml, root.find("./dns"))
+    assert_xml_equals(root.find("./dns"), expected_xml)
 
 
 def test_gen_xml_isolated():
@@ -190,9 +190,11 @@ def test_gen_xml_passthrough_interfaces():
         "network", "virbr0", "passthrough", None, interfaces="eth10 eth11 eth12",
     )
     root = ET.fromstring(xml_data)
-    assert "passthrough" == root.find("forward").get("mode")
-    assert ["eth10", "eth11", "eth12"] == [
-        n.get("dev") for n in root.findall("forward/interface")
+    assert root.find("forward").get("mode") == "passthrough"
+    assert [n.get("dev") for n in root.findall("forward/interface")] == [
+        "eth10",
+        "eth11",
+        "eth12",
     ]
 
 
@@ -212,7 +214,7 @@ def test_gen_xml_hostdev_addresses():
         </forward>
         """
     )
-    assert_xml_equals(expected_forward, root.find("./forward"))
+    assert_xml_equals(root.find("./forward"), expected_forward)
 
 
 def test_gen_xml_hostdev_pf():
@@ -231,7 +233,7 @@ def test_gen_xml_hostdev_pf():
         """
     )
     actual_forward = ET.tostring(xmlutil.strip_spaces(root.find("./forward")))
-    assert expected_forward == actual_forward
+    assert actual_forward == expected_forward
 
 
 def test_gen_xml_openvswitch():
@@ -267,7 +269,7 @@ def test_gen_xml_openvswitch():
         </network>
         """
     )
-    assert_xml_equals(expected_xml, ET.fromstring(xml_data))
+    assert_xml_equals(ET.fromstring(xml_data), expected_xml)
 
 
 @pytest.mark.parametrize(
@@ -307,7 +309,7 @@ def test_define(make_mock_network, autostart, start):
         """
     )
     define_mock = virt.libvirt.openAuth().networkDefineXML
-    assert expected_xml == strip_xml(define_mock.call_args[0][0])
+    assert strip_xml(define_mock.call_args[0][0]) == expected_xml
 
     if autostart:
         mock_network.setAutostart.assert_called_with(1)
@@ -416,7 +418,7 @@ def test_update_nat_change(make_mock_network, test):
             </network>
             """
         )
-        assert expected_xml == strip_xml(define_mock.call_args[0][0])
+        assert strip_xml(define_mock.call_args[0][0]) == expected_xml
 
 
 @pytest.mark.parametrize("change", [True, False], ids=["changed", "unchanged"])
@@ -437,11 +439,14 @@ def test_update_hostdev_pf(make_mock_network, change):
         </network>
         """
     )
-    assert change == virt.network_update(
-        "test-hostdev",
-        None,
-        "hostdev",
-        physical_function="eth0" if not change else "eth1",
+    assert (
+        virt.network_update(
+            "test-hostdev",
+            None,
+            "hostdev",
+            physical_function="eth0" if not change else "eth1",
+        )
+        == change
     )
     define_mock = virt.libvirt.openAuth().networkDefineXML
     if change:
diff --git a/tests/pytests/unit/states/virt/test_domain.py b/tests/pytests/unit/states/virt/test_domain.py
index a4ae8c0694..c705785bf5 100644
--- a/tests/pytests/unit/states/virt/test_domain.py
+++ b/tests/pytests/unit/states/virt/test_domain.py
@@ -21,14 +21,14 @@ def test_defined_no_change(test):
                 "virt.init": init_mock,
             },
         ):
-            assert {
+            assert virt.defined("myvm") == {
                 "name": "myvm",
                 "changes": {"myvm": {"definition": False}},
                 "result": True,
                 "comment": "Domain myvm unchanged",
-            } == virt.defined("myvm")
+            }
             init_mock.assert_not_called()
-            assert [domain_update_call("myvm", test=test)] == update_mock.call_args_list
+            assert update_mock.call_args_list == [domain_update_call("myvm", test=test)]
 
 
 def test_defined_new_with_connection(test):
@@ -72,12 +72,7 @@ def test_defined_new_with_connection(test):
                 {"type": "tcp", "port": 22223, "protocol": "telnet"},
                 {"type": "pty"},
             ]
-            assert {
-                "name": "myvm",
-                "result": True if not test else None,
-                "changes": {"myvm": {"definition": True}},
-                "comment": "Domain myvm defined",
-            } == virt.defined(
+            assert virt.defined(
                 "myvm",
                 cpu=2,
                 mem=2048,
@@ -103,7 +98,12 @@ def test_defined_new_with_connection(test):
                 serials=serials,
                 consoles=consoles,
                 host_devices=["pci_0000_00_17_0"],
-            )
+            ) == {
+                "name": "myvm",
+                "result": True if not test else None,
+                "changes": {"myvm": {"definition": True}},
+                "comment": "Domain myvm defined",
+            }
             if not test:
                 init_mock.assert_called_with(
                     "myvm",
@@ -160,16 +160,16 @@ def test_defined_update(test):
                 "initrd": "/root/f8-i386-initrd",
                 "cmdline": "console=ttyS0 ks=http://example.com/f8-i386/os/",
             }
-            assert {
+            assert virt.defined("myvm", cpu=2, boot=boot,) == {
                 "name": "myvm",
                 "changes": {"myvm": {"definition": True, "cpu": True}},
                 "result": True if not test else None,
                 "comment": "Domain myvm updated",
-            } == virt.defined("myvm", cpu=2, boot=boot,)
+            }
             init_mock.assert_not_called()
-            assert [
+            assert update_mock.call_args_list == [
                 domain_update_call("myvm", cpu=2, test=test, boot=boot)
-            ] == update_mock.call_args_list
+            ]
 
 
 def test_defined_update_error(test):
@@ -189,7 +189,7 @@ def test_defined_update_error(test):
                 "virt.init": init_mock,
             },
         ):
-            assert {
+            assert virt.defined("myvm", cpu=2, boot_dev="cdrom hd") == {
                 "name": "myvm",
                 "changes": {
                     "myvm": {
@@ -200,7 +200,7 @@ def test_defined_update_error(test):
                 },
                 "result": True if not test else None,
                 "comment": "Domain myvm updated with live update(s) failures",
-            } == virt.defined("myvm", cpu=2, boot_dev="cdrom hd")
+            }
             init_mock.assert_not_called()
             update_mock.assert_called_with(
                 "myvm",
@@ -245,16 +245,16 @@ def test_defined_update_definition_error(test):
                 "virt.init": init_mock,
             },
         ):
-            assert {
+            assert virt.defined("myvm", cpu=2) == {
                 "name": "myvm",
                 "changes": {},
                 "result": False,
                 "comment": "error message",
-            } == virt.defined("myvm", cpu=2)
+            }
             init_mock.assert_not_called()
-            assert [
+            assert update_mock.call_args_list == [
                 domain_update_call("myvm", cpu=2, test=test)
-            ] == update_mock.call_args_list
+            ]
 
 
 @pytest.mark.parametrize("running", ["running", "shutdown"])
@@ -279,12 +279,12 @@ def test_running_no_change(test, running):
             if running == "shutdown":
                 changes["started"] = True
                 comment = "Domain myvm started"
-            assert {
+            assert virt.running("myvm") == {
                 "name": "myvm",
                 "result": True,
                 "changes": {"myvm": changes},
                 "comment": comment,
-            } == virt.running("myvm")
+            }
             if running == "shutdown" and not test:
                 start_mock.assert_called()
             else:
@@ -326,12 +326,7 @@ def test_running_define(test):
                 "listen": {"type": "address", "address": "192.168.0.1"},
             }
 
-            assert {
-                "name": "myvm",
-                "result": True if not test else None,
-                "changes": {"myvm": {"definition": True, "started": True}},
-                "comment": "Domain myvm defined and started",
-            } == virt.running(
+            assert virt.running(
                 "myvm",
                 cpu=2,
                 mem=2048,
@@ -353,7 +348,12 @@ def test_running_define(test):
                 connection="someconnection",
                 username="libvirtuser",
                 password="supersecret",
-            )
+            ) == {
+                "name": "myvm",
+                "result": True if not test else None,
+                "changes": {"myvm": {"definition": True, "started": True}},
+                "comment": "Domain myvm defined and started",
+            }
             if not test:
                 init_mock.assert_called_with(
                     "myvm",
@@ -412,12 +412,12 @@ def test_running_start_error():
                 "virt.list_domains": MagicMock(return_value=["myvm"]),
             },
         ):
-            assert {
+            assert virt.running("myvm") == {
                 "name": "myvm",
                 "changes": {"myvm": {"definition": False}},
                 "result": False,
                 "comment": "libvirt error msg",
-            } == virt.running("myvm")
+            }
 
 
 @pytest.mark.parametrize("running", ["running", "shutdown"])
@@ -441,14 +441,14 @@ def test_running_update(test, running):
             changes = {"myvm": {"definition": True, "cpu": True}}
             if running == "shutdown":
                 changes["myvm"]["started"] = True
-            assert {
+            assert virt.running("myvm", cpu=2) == {
                 "name": "myvm",
                 "changes": changes,
                 "result": True if not test else None,
                 "comment": "Domain myvm updated"
                 if running == "running"
                 else "Domain myvm updated and started",
-            } == virt.running("myvm", cpu=2)
+            }
             if running == "shutdown" and not test:
                 start_mock.assert_called()
             else:
@@ -470,12 +470,12 @@ def test_running_definition_error():
                 "virt.list_domains": MagicMock(return_value=["myvm"]),
             },
         ):
-            assert {
+            assert virt.running("myvm", cpu=3) == {
                 "name": "myvm",
                 "changes": {},
                 "result": False,
                 "comment": "error message",
-            } == virt.running("myvm", cpu=3)
+            }
 
 
 def test_running_update_error():
@@ -494,7 +494,7 @@ def test_running_update_error():
                 "virt.list_domains": MagicMock(return_value=["myvm"]),
             },
         ):
-            assert {
+            assert virt.running("myvm", cpu=2) == {
                 "name": "myvm",
                 "changes": {
                     "myvm": {
@@ -505,7 +505,7 @@ def test_running_update_error():
                 },
                 "result": True,
                 "comment": "Domain myvm updated with live update(s) failures",
-            } == virt.running("myvm", cpu=2)
+            }
             update_mock.assert_called_with(
                 "myvm",
                 cpu=2,
@@ -552,14 +552,14 @@ def test_stopped(test, running):
             if running == "running":
                 changes = {"stopped": [{"domain": "myvm", "shutdown": True}]}
                 comment = "Machine has been shut down"
-            assert {
+            assert virt.stopped(
+                "myvm", connection="myconnection", username="user", password="secret",
+            ) == {
                 "name": "myvm",
                 "changes": changes,
                 "comment": comment,
                 "result": True if not test or running == "shutdown" else None,
-            } == virt.stopped(
-                "myvm", connection="myconnection", username="user", password="secret",
-            )
+            }
             if not test and running == "running":
                 shutdown_mock.assert_called_with(
                     "myvm",
@@ -586,12 +586,12 @@ def test_stopped_error():
                 ),
             },
         ):
-            assert {
+            assert virt.stopped("myvm") == {
                 "name": "myvm",
                 "changes": {"ignored": [{"domain": "myvm", "issue": "Some error"}]},
                 "result": False,
                 "comment": "No changes had happened",
-            } == virt.stopped("myvm")
+            }
 
 
 def test_stopped_not_existing(test):
@@ -603,12 +603,12 @@ def test_stopped_not_existing(test):
         with patch.dict(
             virt.__salt__, {"virt.list_domains": MagicMock(return_value=[])},
         ):
-            assert {
+            assert virt.stopped("myvm") == {
                 "name": "myvm",
                 "changes": {},
                 "comment": "No changes had happened",
                 "result": False,
-            } == virt.stopped("myvm")
+            }
 
 
 @pytest.mark.parametrize("running", ["running", "shutdown"])
@@ -631,14 +631,14 @@ def test_powered_off(test, running):
             if running == "running":
                 changes = {"unpowered": [{"domain": "myvm", "stop": True}]}
                 comment = "Machine has been powered off"
-            assert {
+            assert virt.powered_off(
+                "myvm", connection="myconnection", username="user", password="secret",
+            ) == {
                 "name": "myvm",
                 "result": True if not test or running == "shutdown" else None,
                 "changes": changes,
                 "comment": comment,
-            } == virt.powered_off(
-                "myvm", connection="myconnection", username="user", password="secret",
-            )
+            }
             if not test and running == "running":
                 stop_mock.assert_called_with(
                     "myvm",
@@ -666,12 +666,12 @@ def test_powered_off_error():
                 ),
             },
         ):
-            assert {
+            assert virt.powered_off("myvm") == {
                 "name": "myvm",
                 "result": False,
                 "changes": {"ignored": [{"domain": "myvm", "issue": "Some error"}]},
                 "comment": "No changes had happened",
-            } == virt.powered_off("myvm")
+            }
 
 
 def test_powered_off_not_existing():
@@ -686,12 +686,12 @@ def test_powered_off_not_existing():
             ret.update(
                 {"changes": {}, "result": False, "comment": "No changes had happened"}
             )
-            assert {
+            assert virt.powered_off("myvm") == {
                 "name": "myvm",
                 "changes": {},
                 "result": False,
                 "comment": "No changes had happened",
-            } == virt.powered_off("myvm")
+            }
 
 
 def test_snapshot(test):
@@ -707,18 +707,18 @@ def test_snapshot(test):
                 "virt.snapshot": snapshot_mock,
             },
         ):
-            assert {
-                "name": "myvm",
-                "result": True if not test else None,
-                "changes": {"saved": [{"domain": "myvm", "snapshot": True}]},
-                "comment": "Snapshot has been taken",
-            } == virt.snapshot(
+            assert virt.snapshot(
                 "myvm",
                 suffix="snap",
                 connection="myconnection",
                 username="user",
                 password="secret",
-            )
+            ) == {
+                "name": "myvm",
+                "result": True if not test else None,
+                "changes": {"saved": [{"domain": "myvm", "snapshot": True}]},
+                "comment": "Snapshot has been taken",
+            }
             if not test:
                 snapshot_mock.assert_called_with(
                     "myvm",
@@ -745,12 +745,12 @@ def test_snapshot_error():
                 ),
             },
         ):
-            assert {
+            assert virt.snapshot("myvm") == {
                 "name": "myvm",
                 "result": False,
                 "changes": {"ignored": [{"domain": "myvm", "issue": "Some error"}]},
                 "comment": "No changes had happened",
-            } == virt.snapshot("myvm")
+            }
 
 
 def test_snapshot_not_existing(test):
@@ -761,12 +761,12 @@ def test_snapshot_not_existing(test):
         with patch.dict(
             virt.__salt__, {"virt.list_domains": MagicMock(return_value=[])}
         ):
-            assert {
+            assert virt.snapshot("myvm") == {
                 "name": "myvm",
                 "changes": {},
                 "result": False,
                 "comment": "No changes had happened",
-            } == virt.snapshot("myvm")
+            }
 
 
 def test_rebooted(test):
@@ -782,14 +782,14 @@ def test_rebooted(test):
                 "virt.reboot": reboot_mock,
             },
         ):
-            assert {
+            assert virt.rebooted(
+                "myvm", connection="myconnection", username="user", password="secret",
+            ) == {
                 "name": "myvm",
                 "result": True if not test else None,
                 "changes": {"rebooted": [{"domain": "myvm", "reboot": True}]},
                 "comment": "Machine has been rebooted",
-            } == virt.rebooted(
-                "myvm", connection="myconnection", username="user", password="secret",
-            )
+            }
             if not test:
                 reboot_mock.assert_called_with(
                     "myvm",
@@ -816,12 +816,12 @@ def test_rebooted_error():
                 ),
             },
         ):
-            assert {
+            assert virt.rebooted("myvm") == {
                 "name": "myvm",
                 "result": False,
                 "changes": {"ignored": [{"domain": "myvm", "issue": "Some error"}]},
                 "comment": "No changes had happened",
-            } == virt.rebooted("myvm")
+            }
 
 
 def test_rebooted_not_existing(test):
@@ -832,9 +832,9 @@ def test_rebooted_not_existing(test):
         with patch.dict(
             virt.__salt__, {"virt.list_domains": MagicMock(return_value=[])}
         ):
-            assert {
+            assert virt.rebooted("myvm") == {
                 "name": "myvm",
                 "changes": {},
                 "result": False,
                 "comment": "No changes had happened",
-            } == virt.rebooted("myvm")
+            }
diff --git a/tests/pytests/unit/states/virt/test_network.py b/tests/pytests/unit/states/virt/test_network.py
index 668eee0c64..a68acfa236 100644
--- a/tests/pytests/unit/states/virt/test_network.py
+++ b/tests/pytests/unit/states/virt/test_network.py
@@ -19,12 +19,7 @@ def test_network_defined_not_existing(test):
                 "virt.network_define": define_mock,
             },
         ):
-            assert {
-                "name": "mynet",
-                "changes": {"mynet": "Network defined"},
-                "result": None if test else True,
-                "comment": "Network mynet defined",
-            } == virt.network_defined(
+            assert virt.network_defined(
                 "mynet",
                 "br2",
                 "bridge",
@@ -58,7 +53,12 @@ def test_network_defined_not_existing(test):
                 connection="myconnection",
                 username="user",
                 password="secret",
-            )
+            ) == {
+                "name": "mynet",
+                "changes": {"mynet": "Network defined"},
+                "result": None if test else True,
+                "comment": "Network mynet defined",
+            }
             if not test:
                 define_mock.assert_called_with(
                     "mynet",
@@ -117,16 +117,16 @@ def test_network_defined_no_change(test):
                 "virt.network_update": update_mock,
             },
         ):
-            assert {
+            assert virt.network_defined("mynet", "br2", "bridge") == {
                 "name": "mynet",
                 "changes": {},
                 "result": True,
                 "comment": "Network mynet unchanged",
-            } == virt.network_defined("mynet", "br2", "bridge")
+            }
             define_mock.assert_not_called()
-            assert [
+            assert update_mock.call_args_list == [
                 network_update_call("mynet", "br2", "bridge", test=True)
-            ] == update_mock.call_args_list
+            ]
 
 
 def test_network_defined_change(test):
@@ -148,12 +148,7 @@ def test_network_defined_change(test):
                 "virt.network_set_autostart": autostart_mock,
             },
         ):
-            assert {
-                "name": "mynet",
-                "changes": {"mynet": "Network updated, autostart flag changed"},
-                "result": None if test else True,
-                "comment": "Network mynet updated, autostart flag changed",
-            } == virt.network_defined(
+            assert virt.network_defined(
                 "mynet",
                 "br2",
                 "bridge",
@@ -187,7 +182,12 @@ def test_network_defined_change(test):
                 connection="myconnection",
                 username="user",
                 password="secret",
-            )
+            ) == {
+                "name": "mynet",
+                "changes": {"mynet": "Network updated, autostart flag changed"},
+                "result": None if test else True,
+                "comment": "Network mynet updated, autostart flag changed",
+            }
             define_mock.assert_not_called()
             expected_update_kwargs = {
                 "vport": "openvswitch",
@@ -226,7 +226,7 @@ def test_network_defined_change(test):
                 )
             ]
             if test:
-                assert calls == update_mock.call_args_list
+                assert update_mock.call_args_list == calls
                 autostart_mock.assert_not_called()
             else:
                 calls.append(
@@ -234,7 +234,7 @@ def test_network_defined_change(test):
                         "mynet", "br2", "bridge", **expected_update_kwargs, test=False
                     )
                 )
-                assert calls == update_mock.call_args_list
+                assert update_mock.call_args_list == calls
                 autostart_mock.assert_called_with(
                     "mynet",
                     state="off",
@@ -258,12 +258,12 @@ def test_network_defined_error(test):
                 )
             },
         ):
-            assert {
+            assert virt.network_defined("mynet", "br2", "bridge") == {
                 "name": "mynet",
                 "changes": {},
                 "result": False,
                 "comment": "Some error",
-            } == virt.network_defined("mynet", "br2", "bridge")
+            }
             define_mock.assert_not_called()
 
 
@@ -285,12 +285,7 @@ def test_network_running_not_existing(test):
                 "virt.network_start": start_mock,
             },
         ):
-            assert {
-                "name": "mynet",
-                "changes": {"mynet": "Network defined and started"},
-                "comment": "Network mynet defined and started",
-                "result": None if test else True,
-            } == virt.network_running(
+            assert virt.network_running(
                 "mynet",
                 "br2",
                 "bridge",
@@ -324,7 +319,12 @@ def test_network_running_not_existing(test):
                 connection="myconnection",
                 username="user",
                 password="secret",
-            )
+            ) == {
+                "name": "mynet",
+                "changes": {"mynet": "Network defined and started"},
+                "comment": "Network mynet defined and started",
+                "result": None if test else True,
+            }
             if not test:
                 define_mock.assert_called_with(
                     "mynet",
@@ -390,15 +390,15 @@ def test_network_running_nochange(test):
                 "virt.network_update": update_mock,
             },
         ):
-            assert {
+            assert virt.network_running("mynet", "br2", "bridge") == {
                 "name": "mynet",
                 "changes": {},
                 "comment": "Network mynet unchanged and is running",
                 "result": None if test else True,
-            } == virt.network_running("mynet", "br2", "bridge")
-            assert [
+            }
+            assert update_mock.call_args_list == [
                 network_update_call("mynet", "br2", "bridge", test=True)
-            ] == update_mock.call_args_list
+            ]
 
 
 def test_network_running_stopped(test):
@@ -420,20 +420,20 @@ def test_network_running_stopped(test):
                 "virt.network_update": update_mock,
             },
         ):
-            assert {
-                "name": "mynet",
-                "changes": {"mynet": "Network started"},
-                "comment": "Network mynet unchanged and started",
-                "result": None if test else True,
-            } == virt.network_running(
+            assert virt.network_running(
                 "mynet",
                 "br2",
                 "bridge",
                 connection="myconnection",
                 username="user",
                 password="secret",
-            )
-            assert [
+            ) == {
+                "name": "mynet",
+                "changes": {"mynet": "Network started"},
+                "comment": "Network mynet unchanged and started",
+                "result": None if test else True,
+            }
+            assert update_mock.call_args_list == [
                 network_update_call(
                     "mynet",
                     "br2",
@@ -443,7 +443,7 @@ def test_network_running_stopped(test):
                     password="secret",
                     test=True,
                 )
-            ] == update_mock.call_args_list
+            ]
             if not test:
                 start_mock.assert_called_with(
                     "mynet",
@@ -468,9 +468,9 @@ def test_network_running_error(test):
                 ),
             },
         ):
-            assert {
+            assert virt.network_running("mynet", "br2", "bridge") == {
                 "name": "mynet",
                 "changes": {},
                 "comment": "Some error",
                 "result": False,
-            } == virt.network_running("mynet", "br2", "bridge")
+            }
diff --git a/tests/unit/modules/test_virt.py b/tests/unit/modules/test_virt.py
index cac83e8717..a739efdbf6 100644
--- a/tests/unit/modules/test_virt.py
+++ b/tests/unit/modules/test_virt.py
@@ -520,65 +520,6 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
             root.find("devices/graphics/listen").attrib["address"], "myhost"
         )
 
-    def test_gen_xml_spice_default(self):
-        """
-        Test virt._gen_xml() with default spice graphics device
-        """
-        diskp = virt._disk_profile(self.mock_conn, "default", "kvm", [], "hello")
-        nicp = virt._nic_profile("default", "kvm")
-        xml_data = virt._gen_xml(
-            self.mock_conn,
-            "hello",
-            1,
-            512,
-            diskp,
-            nicp,
-            "kvm",
-            "hvm",
-            "x86_64",
-            graphics={"type": "spice"},
-        )
-        root = ET.fromstring(xml_data)
-        self.assertEqual(root.find("devices/graphics").attrib["type"], "spice")
-        self.assertEqual(root.find("devices/graphics").attrib["autoport"], "yes")
-        self.assertEqual(root.find("devices/graphics").attrib["listen"], "0.0.0.0")
-        self.assertEqual(root.find("devices/graphics/listen").attrib["type"], "address")
-        self.assertEqual(
-            root.find("devices/graphics/listen").attrib["address"], "0.0.0.0"
-        )
-
-    def test_gen_xml_spice(self):
-        """
-        Test virt._gen_xml() with spice graphics device
-        """
-        diskp = virt._disk_profile(self.mock_conn, "default", "kvm", [], "hello")
-        nicp = virt._nic_profile("default", "kvm")
-        xml_data = virt._gen_xml(
-            self.mock_conn,
-            "hello",
-            1,
-            512,
-            diskp,
-            nicp,
-            "kvm",
-            "hvm",
-            "x86_64",
-            graphics={
-                "type": "spice",
-                "port": 1234,
-                "tls_port": 5678,
-                "listen": {"type": "none"},
-            },
-        )
-        root = ET.fromstring(xml_data)
-        self.assertEqual(root.find("devices/graphics").attrib["type"], "spice")
-        self.assertEqual(root.find("devices/graphics").attrib["autoport"], "no")
-        self.assertEqual(root.find("devices/graphics").attrib["port"], "1234")
-        self.assertEqual(root.find("devices/graphics").attrib["tlsPort"], "5678")
-        self.assertFalse("listen" in root.find("devices/graphics").attrib)
-        self.assertEqual(root.find("devices/graphics/listen").attrib["type"], "none")
-        self.assertFalse("address" in root.find("devices/graphics/listen").attrib)
-
     def test_gen_xml_memory(self):
         """
         Test virt._gen_xml() with advanced memory settings
-- 
2.30.0


openSUSE Build Service is sponsored by