3 ##############################################################################
4 # Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
12 # Unittest for yardstick.benchmark.contexts.node
17 from yardstick.benchmark.contexts import node
20 class NodeContextTestCase(unittest.TestCase):
22 NODES_SAMPLE = "nodes_sample.yaml"
23 NODES_DUPLICATE_SAMPLE = "nodes_duplicate_sample.yaml"
25 self.test_context = node.NodeContext()
27 def test_construct(self):
29 self.assertIsNone(self.test_context.name)
30 self.assertIsNone(self.test_context.file_path)
31 self.assertEqual(self.test_context.nodes, [])
32 self.assertEqual(self.test_context.controllers, [])
33 self.assertEqual(self.test_context.computes, [])
34 self.assertEqual(self.test_context.baremetals, [])
36 def test_unsuccessful_init(self):
40 'file': self._get_file_abspath("error_file")
43 self.assertRaises(SystemExit, self.test_context.init, attrs)
45 def test_successful_init(self):
49 'file': self._get_file_abspath(self.NODES_SAMPLE)
52 self.test_context.init(attrs)
54 self.assertEqual(self.test_context.name, "foo")
55 self.assertEqual(len(self.test_context.nodes), 4)
56 self.assertEqual(len(self.test_context.controllers), 2)
57 self.assertEqual(len(self.test_context.computes), 1)
58 self.assertEqual(self.test_context.computes[0]["name"], "node3")
59 self.assertEqual(len(self.test_context.baremetals), 1)
60 self.assertEqual(self.test_context.baremetals[0]["name"], "node4")
62 def test__get_server_with_dic_attr_name(self):
66 'file': self._get_file_abspath(self.NODES_SAMPLE)
69 self.test_context.init(attrs)
71 attr_name = {'name': 'foo.bar'}
72 result = self.test_context._get_server(attr_name)
74 self.assertEqual(result, None)
76 def test__get_server_not_found(self):
80 'file': self._get_file_abspath(self.NODES_SAMPLE)
83 self.test_context.init(attrs)
86 result = self.test_context._get_server(attr_name)
88 self.assertEqual(result, None)
90 def test__get_server_duplicate(self):
94 'file': self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
97 self.test_context.init(attrs)
99 attr_name = 'node1.foo'
101 self.assertRaises(SystemExit, self.test_context._get_server, attr_name)
103 def test__get_server_found(self):
107 'file': self._get_file_abspath(self.NODES_SAMPLE)
110 self.test_context.init(attrs)
112 attr_name = 'node1.foo'
113 result = self.test_context._get_server(attr_name)
115 self.assertEqual(result['ip'], '10.229.47.137')
116 self.assertEqual(result['name'], 'node1.foo')
117 self.assertEqual(result['user'], 'root')
118 self.assertEqual(result['key_filename'], '/root/.yardstick_key')
120 def _get_file_abspath(self, filename):
121 curr_path = os.path.dirname(os.path.abspath(__file__))
122 file_path = os.path.join(curr_path, filename)