diff --git a/tests/interface.py b/tests/interface.py
index a0019bc0..797140c5 100644
--- a/tests/interface.py
+++ b/tests/interface.py
@@ -3,199 +3,30 @@
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
-import os
import unittest
-import logging
-from virtinst import Interface, InterfaceProtocol
+from virtinst import Interface
from tests import utils
datadir = "tests/interface-xml"
-
-
class TestInterfaces(unittest.TestCase):
- @property
- def conn(self):
- return utils.URIs.open_testdriver_cached()
+ def testInterfaceBridgeIP(self):
+ conn = utils.URIs.open_testdriver_cached()
- def build_interface(self, interface_type, name):
- iobj = Interface(self.conn)
- iobj.type = interface_type
- iobj.name = name
+ def _check_iface(name, typ, child_names):
+ libvirtobj = conn.interfaceLookupByName(name)
+ xmlobj = Interface(conn, parsexml=libvirtobj.XMLDesc(0))
- return iobj
+ self.assertEqual(xmlobj.name, name)
+ self.assertEqual(xmlobj.type, typ)
+ self.assertEqual(
+ {i.name for i in xmlobj.interfaces},
+ set(child_names))
- def set_general_params(self, iface_obj):
- iface_obj.mtu = 1501
- iface_obj.macaddr = "AA:AA:AA:AA:AA:AA"
- iface_obj.start_mode = Interface.INTERFACE_START_MODE_ONBOOT
- proto = InterfaceProtocol(self.conn)
- proto.family = InterfaceProtocol.INTERFACE_PROTOCOL_FAMILY_IPV4
- iface_obj.add_protocol(proto)
-
- def add_child_interfaces(self, iface_obj):
- def _m(_n):
- xml = self.conn.interfaceLookupByName(_n).XMLDesc(0)
- return Interface(self.conn, parsexml=xml)
- if iface_obj.type == Interface.INTERFACE_TYPE_BRIDGE:
- iface_obj.add_interface(_m("vlaneth1"))
- iface_obj.add_interface(_m("bond-brbond"))
- iface_obj.add_interface(_m("eth0"))
- elif iface_obj.type == Interface.INTERFACE_TYPE_BOND:
- iface_obj.add_interface(_m("eth0"))
- iface_obj.add_interface(_m("eth1"))
- iface_obj.add_interface(_m("eth2"))
-
- def define_xml(self, obj, compare=True):
- obj.validate()
-
- xml = obj.get_xml()
- logging.debug("Defining interface XML:\n%s", xml)
-
- if compare:
- filename = os.path.join(datadir, obj.name + ".xml")
- utils.diff_compare(xml, filename)
-
- iface = obj.install()
-
- newxml = iface.XMLDesc(0)
- logging.debug("Defined XML:\n%s", newxml)
-
- iface.undefine()
-
- # Bridge tests
- def testBridgeInterface(self):
- filename = "bridge"
- obj = self.build_interface(Interface.INTERFACE_TYPE_BRIDGE,
- "test-%s" % filename)
- self.add_child_interfaces(obj)
-
- obj.stp = False
- obj.delay = "7"
-
- self.define_xml(obj)
-
- def testBridgeInterfaceIP(self):
- filename = "bridge-ip"
- obj = self.build_interface(Interface.INTERFACE_TYPE_BRIDGE,
- "test-%s" % filename)
- self.add_child_interfaces(obj)
-
- # IPv4 proto
- iface_proto1 = InterfaceProtocol(self.conn)
- iface_proto1.family = InterfaceProtocol.INTERFACE_PROTOCOL_FAMILY_IPV4
- iface_proto1.add_ip("129.63.1.2")
- iface_proto1.add_ip("255.255.255.0")
- iface_proto1.gateway = "1.2.3.4"
- iface_proto1.dhcp = True
- iface_proto1.dhcp_peerdns = True
-
- # IPv6 proto
- iface_proto2 = InterfaceProtocol(self.conn)
- iface_proto2.family = InterfaceProtocol.INTERFACE_PROTOCOL_FAMILY_IPV6
-
- iface_proto2.add_ip("fe99::215:58ff:fe6e:5", prefix="32")
- iface_proto2.add_ip("fe80::215:58ff:fe6e:5", prefix="64")
- iface_proto2.gateway = "1.2.3.4"
- iface_proto2.dhcp = True
- iface_proto2.dhcp_peerdns = True
- iface_proto2.autoconf = True
-
- obj.add_protocol(iface_proto1)
- obj.add_protocol(iface_proto2)
-
- self.define_xml(obj)
-
- # Bond tests
- def testBondInterface(self):
- filename = "bond"
- obj = self.build_interface(Interface.INTERFACE_TYPE_BOND,
- "test-%s" % filename)
- self.add_child_interfaces(obj)
- self.set_general_params(obj)
-
- self.define_xml(obj)
-
- def testBondInterfaceARP(self):
- filename = "bond-arp"
- obj = self.build_interface(Interface.INTERFACE_TYPE_BOND,
- "test-%s" % filename)
- self.add_child_interfaces(obj)
- self.set_general_params(obj)
-
- obj.arp_interval = 100
- obj.arp_target = "192.168.100.200"
- obj.arp_validate_mode = "backup"
-
- self.define_xml(obj)
-
- def testBondInterfaceMII(self):
- filename = "bond-mii"
- obj = self.build_interface(Interface.INTERFACE_TYPE_BOND,
- "test-%s" % filename)
- self.add_child_interfaces(obj)
- self.set_general_params(obj)
-
- obj.mii_frequency = "123"
- obj.mii_updelay = "12"
- obj.mii_downdelay = "34"
- obj.mii_carrier_mode = "netif"
-
- self.define_xml(obj)
-
- # Ethernet tests
- def testEthernetInterface(self):
- filename = "ethernet"
- obj = self.build_interface(Interface.INTERFACE_TYPE_ETHERNET,
- "test-%s" % filename)
- self.define_xml(obj)
-
- def testEthernetManyParam(self):
- filename = "ethernet-params"
- obj = self.build_interface(Interface.INTERFACE_TYPE_ETHERNET,
- "test-%s" % filename)
-
- obj.mtu = 1234
- obj.mac = "AA:BB:FF:FF:BB:AA"
- obj.start_mode = Interface.INTERFACE_START_MODE_HOTPLUG
-
- self.define_xml(obj)
-
- # VLAN tests
- def testVLANInterface(self):
- filename = "vlan"
- obj = self.build_interface(Interface.INTERFACE_TYPE_VLAN,
- "test-%s" % filename)
-
- obj.tag = "123"
- obj.parent_interface = "eth2"
-
- self.define_xml(obj)
-
- def testVLANInterfaceBusted(self):
- obj = self.build_interface(Interface.INTERFACE_TYPE_VLAN,
- "vlan1")
-
- try:
- self.define_xml(obj, compare=False)
- assert(False)
- except ValueError:
- pass
- except Exception:
- assert(False)
-
- # protocol_xml test
- def testEthernetProtocolInterface(self):
- filename = "ethernet-copy-proto"
- obj = self.build_interface(Interface.INTERFACE_TYPE_ETHERNET,
- "test-%s" % filename)
-
- protoxml = (" \n"
- " \n"
- " \n")
- proto = InterfaceProtocol(self.conn, parsexml=protoxml)
- obj.add_protocol(proto)
-
- self.define_xml(obj)
+ _check_iface("eth0", "ethernet", [])
+ _check_iface("bond0", "bond", ["eth-bond0-1", "eth-bond0-2"])
+ _check_iface("brplain", "bridge", ["eth-brplain0", "eth-brplain1"])
+ _check_iface("brempty", "bridge", [])
+ _check_iface("vlaneth1.3", "vlan", ["vlaneth1"])
diff --git a/tests/testdriver.xml b/tests/testdriver.xml
index c0c74627..28572f3b 100644
--- a/tests/testdriver.xml
+++ b/tests/testdriver.xml
@@ -3491,25 +3491,15 @@ ba
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -3522,11 +3512,11 @@ ba
-
-
+
+
@@ -3536,9 +3526,6 @@ ba
-
-
-
@@ -3555,82 +3542,13 @@ ba
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
index 6a53a23c..2686664d 100644
--- a/tests/xmlparse.py
+++ b/tests/xmlparse.py
@@ -1163,98 +1163,6 @@ class XMLParseTest(unittest.TestCase):
utils.diff_compare(snap.get_xml(), outfile)
- ###################
- # Interface tests #
- ###################
-
- def testInterfaceBridgeIP(self):
- basename = "test-bridge-ip"
- infile = "tests/interface-xml/%s.xml" % basename
- outfile = "tests/xmlparse-xml/interface-%s-out.xml" % basename
- iface = virtinst.Interface(self.conn, parsexml=open(infile).read())
-
- self.assertEqual(len(iface.protocols), 2)
- self.assertEqual(len(iface.interfaces), 3)
-
- check = self._make_checker(iface)
- check("type", "bridge", "foo", "bridge")
- check("name", "test-bridge-ip", "foo-new")
- check("stp", None, True)
- check("delay", None, 2)
-
- check = self._make_checker(iface.protocols[0])
- check("family", "ipv4", "foo", "ipv4")
- check("dhcp_peerdns", True, False)
- check("gateway", "1.2.3.4", "5.5.5.5")
- self.assertEqual(iface.protocols[0].ips[1].address, "255.255.255.0")
-
- check = self._make_checker(iface.protocols[1])
- check("dhcp", True, False)
- check("autoconf", True, False)
-
- check = self._make_checker(iface.protocols[1].ips[1])
- check("address", "fe80::215:58ff:fe6e:5", "2002::")
- check("prefix", 64, 38)
-
- # Remove a child interface, verify it's data remains intact
- child_iface = iface.interfaces[1]
- iface.remove_interface(child_iface)
-
- check = self._make_checker(child_iface)
- check("name", "bond-brbond")
- self.assertEqual(len(child_iface.interfaces), 2)
-
- utils.diff_compare(iface.get_xml(), outfile)
- utils.test_create(self.conn, iface.get_xml(), "interfaceDefineXML")
-
- def testInterfaceBondArp(self):
- basename = "test-bond-arp"
- infile = "tests/interface-xml/%s.xml" % basename
- outfile = "tests/xmlparse-xml/interface-%s-out.xml" % basename
- iface = virtinst.Interface(self.conn, parsexml=open(infile).read())
-
- check = self._make_checker(iface)
- check("start_mode", "onboot", "hotplug")
- check("macaddr", "AA:AA:AA:AA:AA:AA", "AA:AA:AA:11:AA:AA")
- check("mtu", 1501, 1234)
-
- check("bond_mode", None, "active-backup")
- check("arp_interval", 100, 234)
- check("arp_target", "192.168.100.200", "1.2.3.4")
- check("arp_validate_mode", "backup", "active")
-
- utils.diff_compare(iface.get_xml(), outfile)
- utils.test_create(self.conn, iface.get_xml(), "interfaceDefineXML")
-
- def testInterfaceBondMii(self):
- basename = "test-bond-mii"
- infile = "tests/interface-xml/%s.xml" % basename
- outfile = "tests/xmlparse-xml/interface-%s-out.xml" % basename
- iface = virtinst.Interface(self.conn, parsexml=open(infile).read())
-
- check = self._make_checker(iface)
- check("mii_frequency", 123, 111)
- check("mii_downdelay", 34, 22)
- check("mii_updelay", 12, 33)
- check("mii_carrier_mode", "netif", "ioctl")
-
- utils.diff_compare(iface.get_xml(), outfile)
- utils.test_create(self.conn, iface.get_xml(), "interfaceDefineXML")
-
- def testInterfaceVLAN(self):
- basename = "test-vlan"
- infile = "tests/interface-xml/%s.xml" % basename
- outfile = "tests/xmlparse-xml/interface-%s-out.xml" % basename
- iface = virtinst.Interface(self.conn, parsexml=open(infile).read())
-
- check = self._make_checker(iface)
- check("tag", 123, 456)
- check("parent_interface", "eth2", "foonew")
-
- utils.diff_compare(iface.get_xml(), outfile)
- utils.test_create(self.conn, iface.get_xml(), "interfaceDefineXML")
-
-
#################
# Storage tests #
#################