Add new scenario NSPerf-RFC2544
[yardstick.git] / yardstick / tests / unit / benchmark / runner / test_base.py
index 49ba1ef..07d6f18 100644 (file)
@@ -8,17 +8,12 @@
 ##############################################################################
 
 import time
-import uuid
 
 import mock
-from oslo_config import cfg
-import oslo_messaging
 import subprocess
 
 from yardstick.benchmark.runners import base as runner_base
 from yardstick.benchmark.runners import iteration
-from yardstick.common import messaging
-from yardstick.common.messaging import payloads
 from yardstick.tests.unit import base as ut_base
 
 
@@ -48,6 +43,29 @@ class ActionTestCase(ut_base.BaseUnitTestCase):
         runner_base._periodic_action(0, 'echo', mock.Mock())
 
 
+class ScenarioOutputTestCase(ut_base.BaseUnitTestCase):
+
+    def setUp(self):
+        self.output_queue = mock.Mock()
+        self.scenario_output = runner_base.ScenarioOutput(self.output_queue,
+                                                          sequence=1)
+
+    @mock.patch.object(time, 'time')
+    def test_push(self, mock_time):
+        mock_time.return_value = 2
+        data = {"value1": 1}
+        self.scenario_output.push(data)
+        self.output_queue.put.assert_called_once_with({'timestamp': 2,
+                                                       'sequence': 1,
+                                                       'data': data}, True, 10)
+
+    def test_push_no_timestamp(self):
+        self.scenario_output["value1"] = 1
+        self.scenario_output.push(None, False)
+        self.output_queue.put.assert_called_once_with({'sequence': 1,
+                                                       'value1': 1}, True, 10)
+
+
 class RunnerTestCase(ut_base.BaseUnitTestCase):
 
     def setUp(self):
@@ -99,54 +117,3 @@ class RunnerTestCase(ut_base.BaseUnitTestCase):
 
         with self.assertRaises(NotImplementedError):
             runner._run_benchmark(mock.Mock(), mock.Mock(), mock.Mock(), mock.Mock())
-
-
-class RunnerProducerTestCase(ut_base.BaseUnitTestCase):
-
-    @mock.patch.object(oslo_messaging, 'Target', return_value='rpc_target')
-    @mock.patch.object(oslo_messaging, 'RPCClient')
-    @mock.patch.object(oslo_messaging, 'get_rpc_transport',
-                       return_value='rpc_transport')
-    @mock.patch.object(cfg, 'CONF')
-    def test__init(self, mock_config, mock_transport, mock_rpcclient,
-                   mock_target):
-        _id = uuid.uuid1().int
-        runner_producer = runner_base.RunnerProducer(_id)
-        mock_transport.assert_called_once_with(
-            mock_config, url='rabbit://yardstick:yardstick@localhost:5672/')
-        mock_target.assert_called_once_with(topic=messaging.TOPIC_RUNNER,
-                                            fanout=True,
-                                            server=messaging.SERVER)
-        mock_rpcclient.assert_called_once_with('rpc_transport', 'rpc_target')
-        self.assertEqual(_id, runner_producer._id)
-        self.assertEqual(messaging.TOPIC_RUNNER, runner_producer._topic)
-
-    @mock.patch.object(oslo_messaging, 'Target', return_value='rpc_target')
-    @mock.patch.object(oslo_messaging, 'RPCClient')
-    @mock.patch.object(oslo_messaging, 'get_rpc_transport',
-                       return_value='rpc_transport')
-    @mock.patch.object(payloads, 'RunnerPayload', return_value='runner_pload')
-    def test_start_iteration(self, mock_runner_payload, *args):
-        runner_producer = runner_base.RunnerProducer(uuid.uuid1().int)
-        with mock.patch.object(runner_producer,
-                               'send_message') as mock_message:
-            runner_producer.start_iteration(version=10)
-
-        mock_message.assert_called_once_with(
-            messaging.RUNNER_METHOD_START_ITERATION, 'runner_pload')
-        mock_runner_payload.assert_called_once_with(version=10, data={})
-
-    @mock.patch.object(oslo_messaging, 'Target', return_value='rpc_target')
-    @mock.patch.object(oslo_messaging, 'RPCClient')
-    @mock.patch.object(oslo_messaging, 'get_rpc_transport',
-                       return_value='rpc_transport')
-    @mock.patch.object(payloads, 'RunnerPayload', return_value='runner_pload')
-    def test_stop_iteration(self, mock_runner_payload, *args):
-        runner_producer = runner_base.RunnerProducer(uuid.uuid1().int)
-        with mock.patch.object(runner_producer,
-                               'send_message') as mock_message:
-            runner_producer.stop_iteration(version=15)
-
-        mock_message.assert_called_once_with(
-            messaging.RUNNER_METHOD_STOP_ITERATION, 'runner_pload')
-        mock_runner_payload.assert_called_once_with(version=15, data={})