2 # -*- coding: utf-8 -*-
4 from nepi.core.design import ExperimentDescription, FactoriesProvider
5 from nepi.core.design import AF_INET
12 class NetnsDesignTestCase(unittest.TestCase):
13 @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
14 def test_design_if(self):
15 exp_desc = ExperimentDescription()
16 testbed_version = "01"
18 netns_provider = FactoriesProvider(testbed_id, testbed_version)
19 netns_desc = exp_desc.add_testbed_description(netns_provider)
20 netns_desc.set_attribute_value("enableDebug", True)
21 node1 = netns_desc.create("Node")
22 node2 = netns_desc.create("Node")
23 iface1 = netns_desc.create("NodeInterface")
24 iface1.set_attribute_value("up", True)
25 node1.connector("devs").connect(iface1.connector("node"))
26 ip1 = iface1.add_address()
27 ip1.set_attribute_value("Address", "10.0.0.1")
28 iface2 = netns_desc.create("NodeInterface")
29 iface2.set_attribute_value("up", True)
30 node2.connector("devs").connect(iface2.connector("node"))
31 ip2 = iface2.add_address()
32 ip2.set_attribute_value("Address", "10.0.0.2")
33 switch = netns_desc.create("Switch")
34 switch.set_attribute_value("up", True)
35 iface1.connector("switch").connect(switch.connector("devs"))
36 iface2.connector("switch").connect(switch.connector("devs"))
37 app = netns_desc.create("Application")
38 app.set_attribute_value("command", "ping -qc10 10.0.0.2")
39 app.connector("node").connect(node1.connector("apps"))
40 xml = exp_desc.to_xml()
41 exp_desc2 = ExperimentDescription()
42 exp_desc2.from_xml(xml)
43 xml2 = exp_desc2.to_xml()
44 self.assertTrue(xml == xml2)
46 if __name__ == '__main__':