Fix functional tests for Python 3.4

* shlex.split() expects a string. Not bytes.
* decode the bytestring result of subprocess's communicate()
  to a string.

Change-Id: I209f67a91dc609b1e30cb9e683d3d6ee63d00069
This commit is contained in:
Sirushti Murugesan 2015-10-12 17:23:06 +05:30
parent 262af5416b
commit b12d850222
2 changed files with 5 additions and 4 deletions

View File

@ -28,13 +28,14 @@ EXAMPLE_DIR = os.path.join(ROOT_DIR, 'examples')
def execute(cmd, fail_ok=False, merge_stderr=False):
"""Executes specified command for the given action."""
cmdlist = shlex.split(cmd.encode('utf-8'))
cmdlist = shlex.split(cmd)
result = ''
result_err = ''
stdout = subprocess.PIPE
stderr = subprocess.STDOUT if merge_stderr else subprocess.PIPE
proc = subprocess.Popen(cmdlist, stdout=stdout, stderr=stderr)
result, result_err = proc.communicate()
result = result.decode('utf-8')
if not fail_ok and proc.returncode != 0:
raise exceptions.CommandFailed(proc.returncode, cmd, result,
result_err)

View File

@ -32,14 +32,14 @@ class ServerTests(test.TestCase):
def get_flavor(cls):
raw_output = cls.openstack('flavor list -f value -c ID')
ray = raw_output.split('\n')
idx = len(ray)/2
idx = int(len(ray)/2)
return ray[idx]
@classmethod
def get_image(cls):
raw_output = cls.openstack('image list -f value -c ID')
ray = raw_output.split('\n')
idx = len(ray)/2
idx = int(len(ray)/2)
return ray[idx]
@classmethod
@ -49,7 +49,7 @@ class ServerTests(test.TestCase):
except exceptions.CommandFailed:
return ''
ray = raw_output.split('\n')
idx = len(ray)/2
idx = int(len(ray)/2)
return ' --nic net-id=' + ray[idx]
@classmethod