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
14 from __future__ import absolute_import
18 from yardstick.benchmark.contexts import node
21 class NodeContextTestCase(unittest.TestCase):
23 NODES_SAMPLE = "nodes_sample.yaml"
24 NODES_DUPLICATE_SAMPLE = "nodes_duplicate_sample.yaml"
27 self.test_context = node.NodeContext()
29 def test_construct(self):
31 self.assertIsNone(self.test_context.name)
32 self.assertIsNone(self.test_context.file_path)
33 self.assertEqual(self.test_context.nodes, [])
34 self.assertEqual(self.test_context.controllers, [])
35 self.assertEqual(self.test_context.computes, [])
36 self.assertEqual(self.test_context.baremetals, [])
38 def test_unsuccessful_init(self):
42 'file': self._get_file_abspath("error_file")
45 self.assertRaises(IOError, self.test_context.init, attrs)
47 def test_successful_init(self):
51 'file': self._get_file_abspath(self.NODES_SAMPLE)
54 self.test_context.init(attrs)
56 self.assertEqual(self.test_context.name, "foo")
57 self.assertEqual(len(self.test_context.nodes), 4)
58 self.assertEqual(len(self.test_context.controllers), 2)
59 self.assertEqual(len(self.test_context.computes), 1)
60 self.assertEqual(self.test_context.computes[0]["name"], "node3")
61 self.assertEqual(len(self.test_context.baremetals), 1)
62 self.assertEqual(self.test_context.baremetals[0]["name"], "node4")
64 def test__get_server_with_dic_attr_name(self):
68 'file': self._get_file_abspath(self.NODES_SAMPLE)
71 self.test_context.init(attrs)
73 attr_name = {'name': 'foo.bar'}
74 result = self.test_context._get_server(attr_name)
76 self.assertEqual(result, None)
78 def test__get_server_not_found(self):
82 'file': self._get_file_abspath(self.NODES_SAMPLE)
85 self.test_context.init(attrs)
88 result = self.test_context._get_server(attr_name)
90 self.assertEqual(result, None)
92 def test__get_server_duplicate(self):
96 'file': self._get_file_abspath(self.NODES_DUPLICATE_SAMPLE)
99 self.test_context.init(attrs)
101 attr_name = 'node1.foo'
103 self.assertRaises(ValueError, self.test_context._get_server, attr_name)
105 def test__get_server_found(self):
109 'file': self._get_file_abspath(self.NODES_SAMPLE)
112 self.test_context.init(attrs)
114 attr_name = 'node1.foo'
115 result = self.test_context._get_server(attr_name)
117 self.assertEqual(result['ip'], '10.229.47.137')
118 self.assertEqual(result['name'], 'node1.foo')
119 self.assertEqual(result['user'], 'root')
120 self.assertEqual(result['key_filename'], '/root/.yardstick_key')
122 def _get_file_abspath(self, filename):
123 curr_path = os.path.dirname(os.path.abspath(__file__))
124 file_path = os.path.join(curr_path, filename)