diff options
author | Ross Brattain <ross.b.brattain@intel.com> | 2017-12-22 19:35:50 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-12-22 19:35:50 +0000 |
commit | 3984c976967e3d697473cd3bb85204577a838dcd (patch) | |
tree | 926b123337e6f7e9301ada7a799da31638576073 /tests/functional | |
parent | edb1b87fae318501b853ef02a7aa7dffddfe1e48 (diff) | |
parent | 090b1a166bd19bdb98b0311d58b85582bd1676ed (diff) |
Merge "Replace subprocess "check_output" with "Popen""
Diffstat (limited to 'tests/functional')
-rwxr-xr-x | tests/functional/utils.py | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/tests/functional/utils.py b/tests/functional/utils.py index b96d2dd50..d889c0dfa 100755 --- a/tests/functional/utils.py +++ b/tests/functional/utils.py @@ -7,14 +7,12 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from __future__ import absolute_import - import copy import os -import subprocess from oslo_serialization import jsonutils -from oslo_utils import encodeutils + +from yardstick.common import process class Yardstick(object): @@ -26,38 +24,22 @@ class Yardstick(object): """ - def __init__(self, fake=False): - - self.args = ["yardstick"] + def __init__(self): + self._args = ["yardstick"] self.env = copy.deepcopy(os.environ) - def __del__(self): - pass - - def __call__(self, cmd, getjson=False, report_path=None, raw=False, - suffix=None, extension=None, keep_old=False, - write_report=False): + def __call__(self, cmd, getjson=False): """Call yardstick in the shell - :param cmd: yardstick command - :param getjson: in cases, when yardstick prints JSON, you can catch - output deserialized - TO DO: - :param report_path: if present, yardstick command and its output will - be written to file with passed file name - :param raw: don't write command itself to report file. Only output - will be written + :param cmd: Yardstick command. + :param getjson: If the output is a JSON object, it's deserialized. + :return Command output string. """ if not isinstance(cmd, list): cmd = cmd.split(" ") - try: - output = encodeutils.safe_decode(subprocess.check_output( - self.args + cmd, stderr=subprocess.STDOUT, env=self.env), - 'utf-8') - - if getjson: - return jsonutils.loads(output) - return output - except subprocess.CalledProcessError as e: - raise e + cmd = self._args + cmd + output = process.execute(cmd=cmd) + if getjson: + return jsonutils.loads(output) + return output |