diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml
index 941f9e488..49e9dcc7f 100644
--- a/tests/data/cli/compare/virt-install-many-devices.xml
+++ b/tests/data/cli/compare/virt-install-many-devices.xml
@@ -365,6 +365,11 @@
+
+
+
+
+
diff --git a/tests/test_cli.py b/tests/test_cli.py
index feccb3aa3..51dff97d4 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -629,6 +629,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser
--network user,model=virtio,address.type=spapr-vio,address.reg=0x500,link.state=no
--network vhostuser,source_type=unix,source_path=/tmp/vhost1.sock,source_mode=server,model=virtio,source.type=unix,source.path=/tmp/vhost1.sock,address.type=pci,address.bus=0x00,address.slot=0x10,address.function=0x0,address.domain=0x0000
--network user,address.type=ccw,address.cssid=0xfe,address.ssid=0,address.devno=01,boot.order=15,boot.loadparm=SYSTEM1
+--network model=vmxnet3
--graphics sdl
--graphics spice,keymap=none
diff --git a/tests/test_misc.py b/tests/test_misc.py
new file mode 100644
index 000000000..f908c74ad
--- /dev/null
+++ b/tests/test_misc.py
@@ -0,0 +1,126 @@
+# Copyright (C) 2013, 2014 Red Hat, Inc.
+#
+# This work is licensed under the GNU GPLv2 or later.
+# See the COPYING file in the top-level directory.
+
+import virtinst
+
+from tests import utils
+
+
+# Misc tests for various virtinst special behavior. These should only aim for
+# testing any particularly tricky bits, general XML generation should
+# be through virt-install examples in test_cli
+
+
+def test_misc_cpu_topology():
+ """
+ Various topology calculation corner cases
+ """
+ conn = utils.URIs.open_testdefault_cached()
+ cpu = virtinst.DomainCpu(conn)
+ cpu.set_topology_defaults(6)
+ assert cpu.topology.sockets is None
+
+ cpu.topology.sockets = "2"
+ cpu.set_topology_defaults(6)
+ def get_top(_c):
+ return [_c.topology.sockets, _c.topology.cores, _c.topology.threads]
+ assert get_top(cpu) == [2, 3, 1]
+
+ cpu = virtinst.DomainCpu(conn)
+ cpu.topology.cores = "4"
+ cpu.set_topology_defaults(9)
+ assert get_top(cpu) == [2, 4, 1]
+
+ cpu = virtinst.DomainCpu(conn)
+ cpu.topology.threads = "3"
+ cpu.set_topology_defaults(14)
+ assert get_top(cpu) == [4, 1, 3]
+
+ cpu = virtinst.DomainCpu(conn)
+ cpu.topology.sockets = 5
+ cpu.topology.cores = 2
+ assert cpu.vcpus_from_topology() == 10
+
+ cpu = virtinst.DomainCpu(conn)
+ assert cpu.vcpus_from_topology() == 1
+
+
+def test_misc_guest_osinfo_metadata():
+ """
+ Test that reading an unknown OS ID from guest XML will not blow up
+ """
+ # pylint: disable=protected-access
+ g = virtinst.Guest(utils.URIs.open_testdefault_cached())
+ g._metadata.libosinfo.os_id = "http://fedoraproject.org/fedora/20"
+ assert g.osinfo.name == "fedora20"
+
+ g = virtinst.Guest(utils.URIs.open_testdefault_cached())
+ g._metadata.libosinfo.os_id = "http://example.com/idontexit"
+ assert g.osinfo.name == "generic"
+
+
+def test_misc_nonpredicatble_generate():
+ """
+ Bypass our testsuite 'predicatable' handling to test actual random output
+ """
+ from virtinst import cli
+ predconn = utils.URIs.open_testdefault_cached()
+ kvm_uri = utils.URIs.kvm.replace(",predictable", "")
+ kvmconn = cli.getConnection(kvm_uri)
+ testconn = cli.getConnection("test:///default")
+
+ testuuid = virtinst.Guest.generate_uuid(predconn)
+ randomuuid = virtinst.Guest.generate_uuid(testconn)
+ assert randomuuid != testuuid
+ assert len(randomuuid) == len(testuuid)
+
+ testmac = virtinst.DeviceInterface.generate_mac(predconn)
+ randommac = virtinst.DeviceInterface.generate_mac(testconn)
+ qemumac = virtinst.DeviceInterface.generate_mac(kvmconn)
+ assert randommac != testmac
+ assert qemumac != testmac
+ assert len(randommac) == len(testmac)
+
+ # Ensure check_mac_in_use doesn't error on None
+ virtinst.DeviceInterface.check_mac_in_use(predconn, None)
+
+
+def test_misc_support_cornercases():
+ """
+ Test support.py corner cases
+ """
+ conn = utils.URIs.open_testdefault_cached()
+ try:
+ conn.lookupByName("foobar-idontexist")
+ except Exception as e:
+ if not conn.support.is_libvirt_error_no_domain(e):
+ raise
+
+
+def test_misc_osxml_cornercases():
+ """
+ Test OSXML corner cases
+ """
+ conn = utils.URIs.open_testdefault_cached()
+ guest = virtinst.Guest(conn)
+ guest.os.set_initargs_string("foo bar")
+ guest.os.set_initargs_string("baz wibble")
+ assert [i.val for i in guest.os.initargs] == ["baz", "wibble"]
+
+
+def test_misc_cpu_cornercases():
+ """
+ Hit the validation paths for default HOST_MODEL_ONLY
+ """
+ kvmconn = utils.URIs.open_kvm()
+ guest = virtinst.Guest(kvmconn)
+ guest.x86_cpu_default = guest.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
+ guest.set_defaults(guest)
+ assert guest.cpu.model == "Opteron_G4"
+
+ # pylint: disable=protected-access
+ guest.cpu.model = "idontexist"
+ guest.cpu._validate_default_host_model_only(guest)
+ assert guest.cpu.model is None
diff --git a/tests/test_xmlconfig.py b/tests/test_xmlconfig.py
deleted file mode 100644
index 56afd1d52..000000000
--- a/tests/test_xmlconfig.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (C) 2013, 2014 Red Hat, Inc.
-#
-# This work is licensed under the GNU GPLv2 or later.
-# See the COPYING file in the top-level directory.
-
-import os
-import unittest
-
-import virtinst
-
-from tests import utils
-
-
-def _make_guest(conn=None, os_variant=None):
- if not conn:
- conn = utils.URIs.open_testdriver_cached()
-
- g = virtinst.Guest(conn)
- g.name = "TestGuest"
- g.currentMemory = int(200 * 1024)
- g.memory = int(400 * 1024)
-
- if os_variant:
- g.set_os_name(os_variant)
-
- # File disk
- d = virtinst.DeviceDisk(conn)
- d.path = "/dev/default-pool/new-test-suite.img"
- if d.wants_storage_creation():
- parent_pool = d.get_parent_pool()
- vol_install = virtinst.DeviceDisk.build_vol_install(conn,
- os.path.basename(d.path), parent_pool, .0000001, True)
- d.set_vol_install(vol_install)
- d.validate()
- g.add_device(d)
-
- # Block disk
- d = virtinst.DeviceDisk(conn)
- d.path = "/dev/disk-pool/diskvol1"
- d.validate()
- g.add_device(d)
-
- # Network device
- dev = virtinst.DeviceInterface(conn)
- g.add_device(dev)
-
- return g
-
-
-class TestXMLMisc(unittest.TestCase):
- """
- Misc tests for various XML special behavior. These should only aim for
- testing any particularly tricky bits, general XML generation should
- be through virt-install examples in test_cli
- """
- @property
- def conn(self):
- return utils.URIs.open_testdefault_cached()
-
- def testCPUTopology(self):
- # Test CPU topology determining
- cpu = virtinst.DomainCpu(self.conn)
- cpu.set_topology_defaults(6)
- assert cpu.topology.sockets is None
-
- cpu.topology.sockets = "2"
- cpu.set_topology_defaults(6)
- def get_top(_c):
- return [_c.topology.sockets, _c.topology.cores, _c.topology.threads]
- assert get_top(cpu) == [2, 3, 1]
-
- cpu = virtinst.DomainCpu(self.conn)
- cpu.topology.cores = "4"
- cpu.set_topology_defaults(9)
- assert get_top(cpu) == [2, 4, 1]
-
- cpu = virtinst.DomainCpu(self.conn)
- cpu.topology.threads = "3"
- cpu.set_topology_defaults(14)
- assert get_top(cpu) == [4, 1, 3]
-
- cpu = virtinst.DomainCpu(self.conn)
- cpu.topology.sockets = 5
- cpu.topology.cores = 2
- assert cpu.vcpus_from_topology() == 10
-
- cpu = virtinst.DomainCpu(self.conn)
- assert cpu.vcpus_from_topology() == 1
-
- def test_set_defaults_double(self):
- """
- Check that a common config has idempotent set_defaults
- """
- g = _make_guest(conn=utils.URIs.open_kvm(), os_variant="fedora-unknown")
-
- g.set_defaults(None)
- xml1 = g.get_xml()
- g.set_defaults(None)
- xml2 = g.get_xml()
- assert xml1 == xml2
-
- def test_guest_osinfo_metadata(self):
- """
- Test that reading an unknown OS ID from guest XML will not blow up
- """
- # pylint: disable=protected-access
- g = virtinst.Guest(utils.URIs.open_testdefault_cached())
- g._metadata.libosinfo.os_id = "http://fedoraproject.org/fedora/20"
- assert g.osinfo.name == "fedora20"
-
- g = virtinst.Guest(utils.URIs.open_testdefault_cached())
- g._metadata.libosinfo.os_id = "http://example.com/idontexit"
- assert g.osinfo.name == "generic"
-
- def test_nonpredicatble_generate(self):
- from virtinst import cli
- kvm_uri = utils.URIs.kvm.replace(",predictable", "")
- kvmconn = cli.getConnection(kvm_uri)
- testconn = cli.getConnection("test:///default")
-
- testuuid = virtinst.Guest.generate_uuid(self.conn)
- randomuuid = virtinst.Guest.generate_uuid(testconn)
- assert randomuuid != testuuid
- assert len(randomuuid) == len(testuuid)
-
- testmac = virtinst.DeviceInterface.generate_mac(self.conn)
- randommac = virtinst.DeviceInterface.generate_mac(testconn)
- qemumac = virtinst.DeviceInterface.generate_mac(kvmconn)
- assert randommac != testmac
- assert qemumac != testmac
- assert len(randommac) == len(testmac)
-
- # Ensure check_mac_in_use doesn't error on None
- virtinst.DeviceInterface.check_mac_in_use(self.conn, None)
-
- def test_support_misc(self):
- try:
- self.conn.lookupByName("foobar-idontexist")
- except Exception as e:
- if not self.conn.support.is_libvirt_error_no_domain(e):
- raise
diff --git a/tests/test_xmlparse.py b/tests/test_xmlparse.py
index 0d817035a..aabc50f58 100644
--- a/tests/test_xmlparse.py
+++ b/tests/test_xmlparse.py
@@ -287,7 +287,8 @@ class XMLParseTest(unittest.TestCase):
self._alter_compare(guest.get_xml(), outfile)
# Hits a codepath when domcaps don't provide the needed info
- guest = virtinst.Guest(self.conn, xml)
+ emptyconn = utils.URIs.open_testdefault_cached()
+ guest = virtinst.Guest(emptyconn, xml)
guest.cpu.check_security_features(guest)
assert guest.cpu.secure is False
@@ -1138,23 +1139,3 @@ class XMLParseTest(unittest.TestCase):
# Little test for DeviceAddress.pretty_desc
assert devs[-1].address.pretty_desc() == "0:0:0:3"
-
- def testCPUHostModelOnly(self):
- """
- Hit the validation paths for default HOST_MODEL_ONLY
- """
- guest = virtinst.Guest(self.kvmconn)
- guest.x86_cpu_default = guest.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
- guest.set_defaults(guest)
- assert guest.cpu.model == "Opteron_G4"
-
- # pylint: disable=protected-access
- guest.cpu.model = "idontexist"
- guest.cpu._validate_default_host_model_only(guest)
- assert guest.cpu.model is None
-
- def testOSXMLInitargsRemove(self):
- guest = virtinst.Guest(self.conn)
- guest.os.set_initargs_string("foo bar")
- guest.os.set_initargs_string("baz wibble")
- assert [i.val for i in guest.os.initargs] == ["baz", "wibble"]