Merge "Separate out test_parse_to_value_exception()"
[yardstick.git] / yardstick / tests / unit / benchmark / core / test_task.py
index 9e8e4e9..e1414c2 100644 (file)
@@ -9,14 +9,17 @@
 
 import copy
 import io
+import logging
 import os
 import sys
 
 import mock
 import six
+from six.moves import builtins
 import unittest
 import uuid
 
+from yardstick.benchmark.contexts import base
 from yardstick.benchmark.contexts import dummy
 from yardstick.benchmark.core import task
 from yardstick.common import constants as consts
@@ -27,7 +30,7 @@ from yardstick.common import utils
 
 class TaskTestCase(unittest.TestCase):
 
-    @mock.patch.object(task, 'Context')
+    @mock.patch.object(base, 'Context')
     def test_parse_nodes_with_context_same_context(self, mock_context):
         scenario_cfg = {
             "nodes": {
@@ -68,7 +71,7 @@ class TaskTestCase(unittest.TestCase):
                                                            dispatcher2])
         self.assertIsNone(t._do_output(output_config, {}))
 
-    @mock.patch.object(task, 'Context')
+    @mock.patch.object(base, 'Context')
     def test_parse_networks_from_nodes(self, mock_context):
         nodes = {
             'node1': {
@@ -132,7 +135,7 @@ class TaskTestCase(unittest.TestCase):
         self.assertEqual(mock_context.get_network.call_count, expected_get_network_calls)
         self.assertDictEqual(networks, expected)
 
-    @mock.patch.object(task, 'Context')
+    @mock.patch.object(base, 'Context')
     @mock.patch.object(task, 'base_runner')
     def test_run(self, mock_base_runner, *args):
         scenario = {
@@ -155,6 +158,31 @@ class TaskTestCase(unittest.TestCase):
         t._run([scenario], False, "yardstick.out")
         runner.run.assert_called_once()
 
+    @mock.patch.object(base, 'Context')
+    @mock.patch.object(task, 'base_runner')
+    def test_run_ProxDuration(self, mock_base_runner, *args):
+        scenario = {
+            'host': 'athena.demo',
+            'target': 'ares.demo',
+            'runner': {
+                'duration': 60,
+                'interval': 1,
+                'sampled': 'yes',
+                'confirmation': 1,
+                'type': 'ProxDuration'
+            },
+            'type': 'Ping'
+        }
+
+        t = task.Task()
+        runner = mock.Mock()
+        runner.join.return_value = 0
+        runner.get_output.return_value = {}
+        runner.get_result.return_value = []
+        mock_base_runner.Runner.get.return_value = runner
+        t._run([scenario], False, "yardstick.out")
+        runner.run.assert_called_once()
+
     @mock.patch.object(os, 'environ')
     def test_check_precondition(self, mock_os_environ):
         cfg = {
@@ -296,9 +324,9 @@ class TaskTestCase(unittest.TestCase):
         actual_result = t._parse_options(options)
         self.assertEqual(expected_result, actual_result)
 
-    @mock.patch('six.moves.builtins.open', side_effect=mock.mock_open())
+    @mock.patch.object(builtins, 'open', side_effect=mock.mock_open())
     @mock.patch.object(task, 'utils')
-    @mock.patch('logging.root')
+    @mock.patch.object(logging, 'root')
     def test_set_log(self, mock_logging_root, *args):
         task_obj = task.Task()
         task_obj.task_id = 'task_id'
@@ -357,6 +385,12 @@ key2:
                 }
             }
 
+    @staticmethod
+    def _remove_contexts():
+        for context in base.Context.list:
+            context._delete_context()
+        base.Context.list = []
+
     def test__change_node_names(self):
 
         ctx_attrs = {
@@ -371,6 +405,7 @@ key2:
             }
 
         my_context = dummy.DummyContext()
+        self.addCleanup(self._remove_contexts)
         my_context.init(ctx_attrs)
 
         expected_scenario = {
@@ -413,6 +448,7 @@ key2:
             }
 
         my_context = dummy.DummyContext()
+        self.addCleanup(self._remove_contexts)
         my_context.init(ctx_attrs)
 
         scenario = copy.deepcopy(self.scenario)
@@ -428,6 +464,7 @@ key2:
         }
 
         my_context = dummy.DummyContext()
+        self.addCleanup(self._remove_contexts)
         my_context.init(ctx_attrs)
         scenario = copy.deepcopy(self.scenario)
         scenario['options'] = None
@@ -442,6 +479,7 @@ key2:
         }
 
         my_context = dummy.DummyContext()
+        self.addCleanup(self._remove_contexts)
         my_context.init(ctx_attrs)
         scenario = copy.deepcopy(self.scenario)
         scenario['options']['server_name'] = None
@@ -525,7 +563,8 @@ key2:
         mock_open.assert_has_calls([mock.call('args_file'),
                                     mock.call('task_file')])
 
-    def test__render_task_error_arguments(self):
+    @mock.patch.object(builtins, 'print')
+    def test__render_task_error_arguments(self, *args):
         with self.assertRaises(exceptions.TaskRenderArgumentError):
             task.TaskParser('task_file')._render_task('value1="var3"', None)