test support added
[nepi.git] / test / testbeds / netns / design.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 from nepi.core.design import ExperimentDescription, FactoriesProvider
5 from nepi.core.design import AF_INET
6 import os
7 import shutil
8 import test_util
9 import unittest
10 import uuid
11
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"
17         testbed_id = "netns"
18         netns_provider = FactoriesProvider(testbed_id, testbed_version)
19         netns_desc = exp_desc.add_testbed_description(netns_provider)
20         node1 = netns_desc.create("Node")
21         node2 = netns_desc.create("Node")
22         iface1 = netns_desc.create("NodeInterface")
23         iface1.set_attribute_value("up", True)
24         node1.connector("devs").connect(iface1.connector("node"))
25         ip1 = iface1.add_address()
26         ip1.set_attribute_value("Address", "10.0.0.1")
27         iface2 = netns_desc.create("NodeInterface")
28         iface2.set_attribute_value("up", True)
29         node2.connector("devs").connect(iface2.connector("node"))
30         ip2 = iface2.add_address()
31         ip2.set_attribute_value("Address", "10.0.0.2")
32         switch = netns_desc.create("Switch")
33         switch.set_attribute_value("up", True)
34         iface1.connector("switch").connect(switch.connector("devs"))
35         iface2.connector("switch").connect(switch.connector("devs"))
36         app = netns_desc.create("Application")
37         app.set_attribute_value("command", "ping -qc10 10.0.0.2")
38         app.connector("node").connect(node1.connector("apps"))
39         xml = exp_desc.to_xml()
40         exp_desc2 = ExperimentDescription()
41         exp_desc2.from_xml(xml)
42         xml2 = exp_desc2.to_xml()
43         self.assertTrue(xml == xml2)
44         
45 if __name__ == '__main__':
46     unittest.main()