from yardstick.benchmark.scenarios.availability import util
 
-@mock.patch('yardstick.benchmark.scenarios.availability.util.subprocess')
 class ExecuteShellTestCase(unittest.TestCase):
 
     def setUp(self):
         self.param_config = {'serviceName': '@serviceName', 'value': 1}
         self.intermediate_variables = {'@serviceName': 'nova-api'}
         self.std_output = '| id       | 1                     |'
-        self.cmd_config = {'cmd':'ls','param':'-a'}
+        self.cmd_config = {'cmd':'ls', 'param':'-a'}
 
-    def test_util_build_command_shell(self,mock_subprocess):
+        self._mock_subprocess = mock.patch.object(util, 'subprocess')
+        self.mock_subprocess = self._mock_subprocess.start()
+        self.addCleanup(self._stop_mock)
+
+    def _stop_mock(self):
+        self._mock_subprocess.stop()
+
+    def test_util_build_command_shell(self):
         result = util.build_shell_command(self.param_config, True,
                                           self.intermediate_variables)
-        self.assertEqual("nova-api" in result, True)
+        self.assertIn("nova-api", result)
 
-    def test_read_stdout_item(self,mock_subprocess):
-        result = util.read_stdout_item(self.std_output,'id')
-        self.assertEquals('1',result)
+    def test_read_stdout_item(self):
+        result = util.read_stdout_item(self.std_output, 'id')
+        self.assertEquals('1', result)
 
-    def test_buildshellparams(self,mock_subprocess):
-        result = util.buildshellparams(self.cmd_config,True)
+    def test_buildshellparams(self):
+        result = util.buildshellparams(self.cmd_config, True)
         self.assertEquals('/bin/bash -s {0} {1}', result)
 
-    def test__fun_execute_shell_command_successful(self, mock_subprocess):
+    def test__fun_execute_shell_command_successful(self):
         cmd = "env"
-        mock_subprocess.check_output.return_value = (0, 'unittest')
-        exitcode, output = util.execute_shell_command(cmd)
+        self.mock_subprocess.check_output.return_value = (0, 'unittest')
+        exitcode, _ = util.execute_shell_command(cmd)
         self.assertEqual(exitcode, 0)
 
-    def test__fun_execute_shell_command_fail_cmd_exception(self, mock_subprocess):
+    def test__fun_execute_shell_command_fail_cmd_exception(self):
         cmd = "env"
-        mock_subprocess.check_output.side_effect = RuntimeError
-        exitcode, output = util.execute_shell_command(cmd)
+        self.mock_subprocess.check_output.side_effect = RuntimeError
+        exitcode, _ = util.execute_shell_command(cmd)
         self.assertEqual(exitcode, -1)