summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-09-15 16:18:54 +0000
committerGerrit Code Review <review@openstack.org>2015-09-15 16:18:54 +0000
commita5e4e581b6a751adc1511e91bfaa931cff6414b1 (patch)
treeec044caa152dc7eadfc7c027bc8f629c8ac5399a
parent0c1374c143f1639c181423b0cd7886d4d75d8673 (diff)
parent26cfeef233e2ad28489a62fbb1a6a69cc02d1b83 (diff)
downloadtempest-lib-a5e4e581b6a751adc1511e91bfaa931cff6414b1.tar.gz
Merge "Fix cli.base.execute with py34"
-rw-r--r--tempest_lib/cli/base.py10
-rw-r--r--tempest_lib/tests/cli/test_execute.py31
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)