Merge "Improve "get_server" function in Kubernetes context"
[yardstick.git] / yardstick / tests / unit / benchmark / contexts / standalone / test_ovs_dpdk.py
index 6eb438c..69779d3 100644 (file)
@@ -19,6 +19,7 @@ import mock
 import six
 import unittest
 
+from yardstick.benchmark import contexts
 from yardstick.benchmark.contexts import base
 from yardstick.benchmark.contexts.standalone import model
 from yardstick.benchmark.contexts.standalone import ovs_dpdk
@@ -58,7 +59,10 @@ class OvsDpdkContextTestCase(unittest.TestCase):
             'file': self._get_file_abspath(self.NODES_ovs_dpdk_SAMPLE)
         }
         self.ovs_dpdk = ovs_dpdk.OvsDpdkContext()
+        self._mock_log = mock.patch.object(ovs_dpdk, 'LOG')
+        self.mock_log = self._mock_log.start()
         self.addCleanup(self._remove_contexts)
+        self.addCleanup(self._stop_mocks)
 
     @staticmethod
     def _remove_contexts():
@@ -66,6 +70,9 @@ class OvsDpdkContextTestCase(unittest.TestCase):
             context._delete_context()
         base.Context.list = []
 
+    def _stop_mocks(self):
+        self._mock_log.stop()
+
     @mock.patch('yardstick.benchmark.contexts.standalone.model.Server')
     @mock.patch('yardstick.benchmark.contexts.standalone.model.StandaloneContextHelper')
     def test___init__(self, mock_helper, mock_server):
@@ -76,7 +83,7 @@ class OvsDpdkContextTestCase(unittest.TestCase):
 
     def test_init(self):
         ATTRS = {
-            'name': 'StandaloneOvsDpdk',
+            'name': contexts.CONTEXT_STANDALONEOVSDPDK,
             'task_id': '1234567890',
             'file': 'pod',
             'flavor': {},
@@ -290,6 +297,22 @@ class OvsDpdkContextTestCase(unittest.TestCase):
         self.assertEqual(result['user'], 'root')
         self.assertEqual(result['key_filename'], '/root/.yardstick_key')
 
+    def test__get_physical_node_for_server(self):
+        attrs = self.attrs
+        attrs.update({'servers': {'server1': {}}})
+        self.ovs_dpdk.init(attrs)
+
+        # When server is not from this context
+        result = self.ovs_dpdk._get_physical_node_for_server('server1.another-context')
+        self.assertIsNone(result)
+
+        # When node_name is not from this context
+        result = self.ovs_dpdk._get_physical_node_for_server('fake.foo-12345678')
+        self.assertIsNone(result)
+
+        result = self.ovs_dpdk._get_physical_node_for_server('server1.foo-12345678')
+        self.assertEqual(result, 'node5.foo')
+
     # TODO(elfoley): Split this test for networks that exist and networks that
     #                don't
     def test__get_network(self):