diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-09-15 16:18:54 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-09-15 16:18:54 +0000 |
commit | a5e4e581b6a751adc1511e91bfaa931cff6414b1 (patch) | |
tree | ec044caa152dc7eadfc7c027bc8f629c8ac5399a | |
parent | 0c1374c143f1639c181423b0cd7886d4d75d8673 (diff) | |
parent | 26cfeef233e2ad28489a62fbb1a6a69cc02d1b83 (diff) | |
download | tempest-lib-a5e4e581b6a751adc1511e91bfaa931cff6414b1.tar.gz |
Merge "Fix cli.base.execute with py34"
-rw-r--r-- | tempest_lib/cli/base.py | 10 | ||||
-rw-r--r-- | tempest_lib/tests/cli/test_execute.py | 31 |
2 files changed, 39 insertions, 2 deletions
diff --git a/tempest_lib/cli/base.py b/tempest_lib/cli/base.py index ec966ca..d5250ff 100644 --- a/tempest_lib/cli/base.py +++ b/tempest_lib/cli/base.py @@ -16,6 +16,7 @@ import logging import os import shlex +import six import subprocess 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), flags, action, params]) 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_err = '' stdout = subprocess.PIPE @@ -62,7 +65,10 @@ def execute(cmd, action, flags='', params='', fail_ok=False, cmd, result, result_err) - return result + if six.PY2: + return result + else: + return os.fsdecode(result) class CLIClient(object): diff --git a/tempest_lib/tests/cli/test_execute.py b/tempest_lib/tests/cli/test_execute.py new file mode 100644 index 0000000..b56d614 --- /dev/null +++ b/tempest_lib/tests/cli/test_execute.py @@ -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) |