Merge "Added test descriptors for vCMTS testcase"
[yardstick.git] / yardstick / tests / unit / network_services / vnf_generic / vnf / test_tg_prox.py
index f581ec8..0aaf177 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,20 +17,14 @@ import unittest
 import mock
 
 from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
-from yardstick.tests import STL_MOCKS
+from yardstick.benchmark.contexts import base as ctx_base
+from yardstick.network_services.vnf_generic.vnf.tg_prox import ProxTrafficGen
+from yardstick.network_services.traffic_profile.base import TrafficProfile
 
 
 SSH_HELPER = 'yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper'
 NAME = 'vnf__1'
 
-STLClient = mock.MagicMock()
-stl_patch = mock.patch.dict("sys.modules", STL_MOCKS)
-stl_patch.start()
-
-if stl_patch:
-    from yardstick.network_services.vnf_generic.vnf.tg_prox import ProxTrafficGen
-    from yardstick.network_services.traffic_profile.base import TrafficProfile
-
 
 @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.time')
 class TestProxTrafficGen(unittest.TestCase):
@@ -324,16 +318,37 @@ class TestProxTrafficGen(unittest.TestCase):
         self.assertIsNone(prox_traffic_gen._tg_process)
         self.assertIsNone(prox_traffic_gen._traffic_process)
 
+    @mock.patch.object(ctx_base.Context, 'get_physical_node_from_server', return_value='mock_node')
     @mock.patch(SSH_HELPER)
     def test_collect_kpi(self, ssh, *args):
         mock_ssh(ssh)
-
         prox_traffic_gen = ProxTrafficGen(NAME, self.VNFD0)
+        prox_traffic_gen.scenario_helper.scenario_cfg = {
+            'nodes': {prox_traffic_gen.name: "mock"}
+        }
         prox_traffic_gen._vnf_wrapper.resource_helper.resource = mock.MagicMock(
             **{"self.check_if_system_agent_running.return_value": [False]})
-        prox_traffic_gen._vnf_wrapper.vnf_execute = mock.Mock(return_value="")
-        self.assertEqual({}, prox_traffic_gen.collect_kpi())
 
+        vnfd_helper = mock.MagicMock()
+        vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+        prox_traffic_gen.resource_helper.vnfd_helper = vnfd_helper
+
+        prox_traffic_gen._vnf_wrapper.resource_helper.client = mock.MagicMock()
+        prox_traffic_gen._vnf_wrapper.resource_helper.client.multi_port_stats.return_value = \
+            [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]]
+        prox_traffic_gen._vnf_wrapper.resource_helper.client.multi_port_stats_diff.return_value = \
+            [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7]
+        prox_traffic_gen._vnf_wrapper.resource_helper.client.\
+            multi_port_stats_tuple.return_value = \
+                {"xe0": {"in_packets": 1, "out_packets": 2}}
+
+        prox_traffic_gen._vnf_wrapper.vnf_execute = mock.Mock(return_value="")
+        expected = {
+            'collect_stats': {'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}},
+            'physical_node': 'mock_node'
+        }
+        result = prox_traffic_gen.collect_kpi()
+        self.assertDictEqual(result, expected)
 
     @mock.patch('yardstick.network_services.vnf_generic.vnf.prox_helpers.find_relative_file')
     @mock.patch(
@@ -396,7 +411,7 @@ class TestProxTrafficGen(unittest.TestCase):
         sut.ssh_helper = mock.Mock()
         sut.ssh_helper.run = mock.Mock()
         sut.setup_helper.prox_config_dict = {}
-        sut._connect_client = mock.Mock(autospec=STLClient)
+        sut._connect_client = mock.Mock(autospec=mock.Mock())
         sut._connect_client.get_stats = mock.Mock(return_value="0")
         sut._traffic_runner(mock_traffic_profile)