0c089a38d7013cc9463f0b35093f7c01b1a4dd00
[nepi.git] / test / core / execute.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 from nepi.util.constants import STATUS_FINISHED
5 import mock
6 import mock.metadata_v01 
7 import sys
8 import time
9 import unittest
10
11 class ExecuteTestCase(unittest.TestCase):
12     def setUp(self):
13         sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
14
15     def test_execute(self):
16         testbed_version = "01"
17         testbed_id = "mock"
18         instance = mock.TestbedInstance(testbed_version)
19         instance.defer_configure("fake", True)
20         instance.defer_create(2, "Node")
21         instance.defer_create(3, "Node")
22         instance.defer_create(4, "Node")
23         instance.defer_create(5, "Interface")
24         instance.defer_create_set(5, "fake", True)
25         instance.defer_connect(2, "devs", 5, "node")
26         instance.defer_create(6, "Interface")
27         instance.defer_create_set(6, "fake", True)
28         instance.defer_connect(3, "devs", 6, "node")
29         instance.defer_connect(5, "iface", 6, "iface")
30         instance.defer_create(7, "Application")
31         instance.defer_add_trace(7, "fake")
32         instance.defer_connect(7, "node", 2, "apps")
33
34         instance.do_setup()
35         instance.do_create()
36         instance.do_connect()
37         instance.do_configure()
38         instance.start()
39         while instance.status(7) != STATUS_FINISHED:
40             time.sleep(0.5)
41         app_result = instance.trace(7, "fake")
42         comp_result = """PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
43
44 --- 10.0.0.2 ping statistics ---
45 1 packets transmitted, 1 received, 0% packet loss, time 0ms
46 """
47         
48         self.assertTrue(app_result.startswith(comp_result))
49         instance.stop()
50         instance.shutdown()
51
52 if __name__ == '__main__':
53     unittest.main()
54