From a2d7ebd39b99db9c5728e2a256568b8bbbc4734f Mon Sep 17 00:00:00 2001 From: EdLeafe Date: Wed, 12 Oct 2016 20:55:40 +0000 Subject: [PATCH] Corrects the type of a base64 encoded string The nova/tests/functional/api_sample_tests/test_servers.py contains the ServersSampleBase class, and in its class definition creates a 'user_data' attribute by base64 encoding a string. However, this will not work in Python 3, as the base64.b64encode() method requires bytes, not a string. As a result, importing the test class fails and no tests get run. Note that this change doesn't fix all tests to work under Python 3; it simply fixes the bug that prevents the tests from running at all under Python 3. Closes-Bug: #1632856 Change-Id: I35a7b02132bed0387a173b339f6204bf0e3269de --- nova/tests/functional/api_sample_tests/test_servers.py | 4 +++- tox.ini | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nova/tests/functional/api_sample_tests/test_servers.py b/nova/tests/functional/api_sample_tests/test_servers.py index 2bbe55e1d552..a1c41c858f70 100644 --- a/nova/tests/functional/api_sample_tests/test_servers.py +++ b/nova/tests/functional/api_sample_tests/test_servers.py @@ -16,6 +16,8 @@ import base64 import time +import six + from nova.api.openstack import api_version_request as avr from nova.tests.functional.api_sample_tests import api_sample_base from nova.tests.unit.api.openstack import fakes @@ -26,7 +28,7 @@ class ServersSampleBase(api_sample_base.ApiSampleTestBaseV21): microversion = None sample_dir = 'servers' - user_data_contents = '#!/bin/bash\n/bin/su\necho "I am in you!"\n' + user_data_contents = six.b('#!/bin/bash\n/bin/su\necho "I am in you!"\n') user_data = base64.b64encode(user_data_contents) common_req_names = [ diff --git a/tox.ini b/tox.ini index 6cc0c8b3ae36..c12f0dbd862f 100644 --- a/tox.ini +++ b/tox.ini @@ -47,8 +47,8 @@ commands = bash -c '! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2>&1 > /dev/null | grep -B1 -v ^python' [testenv:functional] -# TODO(melwitt): This can be removed when functional tests can be run -# with python 3.x +# TODO(melwitt): This can be removed when functional tests are gating with +# python 3.x basepython = python2.7 usedevelop = True setenv = VIRTUAL_ENV={envdir}