Merge "Fix cli.base.execute with py34"
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
|
import six
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from tempest_lib import base
|
from tempest_lib import base
|
||||||
@@ -50,7 +51,9 @@ def execute(cmd, action, flags='', params='', fail_ok=False,
|
|||||||
cmd = ' '.join([os.path.join(cli_dir, cmd),
|
cmd = ' '.join([os.path.join(cli_dir, cmd),
|
||||||
flags, action, params])
|
flags, action, params])
|
||||||
LOG.info("running: '%s'" % cmd)
|
LOG.info("running: '%s'" % cmd)
|
||||||
cmd = shlex.split(cmd.encode('utf-8'))
|
if six.PY2:
|
||||||
|
cmd = cmd.encode('utf-8')
|
||||||
|
cmd = shlex.split(cmd)
|
||||||
result = ''
|
result = ''
|
||||||
result_err = ''
|
result_err = ''
|
||||||
stdout = subprocess.PIPE
|
stdout = subprocess.PIPE
|
||||||
@@ -62,7 +65,10 @@ def execute(cmd, action, flags='', params='', fail_ok=False,
|
|||||||
cmd,
|
cmd,
|
||||||
result,
|
result,
|
||||||
result_err)
|
result_err)
|
||||||
|
if six.PY2:
|
||||||
return result
|
return result
|
||||||
|
else:
|
||||||
|
return os.fsdecode(result)
|
||||||
|
|
||||||
|
|
||||||
class CLIClient(object):
|
class CLIClient(object):
|
||||||
|
31
tempest_lib/tests/cli/test_execute.py
Normal file
31
tempest_lib/tests/cli/test_execute.py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
|
from tempest_lib.cli import base as cli_base
|
||||||
|
from tempest_lib.tests import base
|
||||||
|
|
||||||
|
|
||||||
|
class TestExecute(base.TestCase):
|
||||||
|
def test_execute_success(self):
|
||||||
|
result = cli_base.execute("/bin/ls", action="tempest_lib",
|
||||||
|
flags="-l -a")
|
||||||
|
self.assertIsInstance(result, str)
|
||||||
|
self.assertIn("__init__.py", result)
|
||||||
|
|
||||||
|
def test_execute_failure(self):
|
||||||
|
result = cli_base.execute("/bin/ls", action="tempest_lib",
|
||||||
|
flags="--foobar", merge_stderr=True,
|
||||||
|
fail_ok=True)
|
||||||
|
self.assertIsInstance(result, str)
|
||||||
|
self.assertIn("--foobar", result)
|
Reference in New Issue
Block a user