84015339c181573cc3d89950bcfba9212efbd3e0
[nepi.git] / test / core / design.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 from nepi.core.design import ExperimentDescription, FactoriesProvider
5 from nepi.util import tags
6 import mock.metadata_v01 
7 import sys
8 import unittest
9
10 class DesignTestCase(unittest.TestCase):
11     def setUp(self):
12         sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
13
14     def test_design(self):
15         exp_desc = ExperimentDescription()
16         testbed_version = "01"
17         testbed_id = "mock"
18         provider = FactoriesProvider(testbed_id, testbed_version)
19         desc = exp_desc.add_testbed_description(provider)
20         desc.set_attribute_value("fake", True)
21         node1 = desc.create("Node")
22         node2 = desc.create("Node")
23         iface1 = desc.create("Interface")
24         iface1.set_attribute_value("fake", True)
25         node1.connector("devs").connect(iface1.connector("node"))
26         iface2 = desc.create("Interface")
27         iface2.set_attribute_value("fake", True)
28         node2.connector("devs").connect(iface2.connector("node"))
29         iface1.connector("iface").connect(iface2.connector("iface"))
30         app = desc.create("Application")
31         app.connector("node").connect(node1.connector("apps"))
32         app.enable_trace("fake")
33
34         self.assertEquals(node1.tags, [tags.MOBILE])
35
36         xml = exp_desc.to_xml()
37         exp_desc2 = ExperimentDescription()
38         exp_desc2.from_xml(xml)
39         xml2 = exp_desc2.to_xml()
40         self.assertTrue(xml == xml2)
41
42 if __name__ == '__main__':
43     unittest.main()
44