From f036e9898a69f5041f9cde02e3652c29e2de1643 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Mon, 5 Dec 2016 16:11:54 -0500 Subject: Add support for Python 3 Porting to Python3 using Openstack guidelines: https://wiki.openstack.org/wiki/Python3 This passes unittests on Python 3.5 and passes opnfv_smoke suite Updates: use six for urlparse and urlopen fix exception.message attribute removal run unittests on python3 use unitest.mock on python 3 fix open mock for vsperf fix float division by using delta/eplison comparison use unicode in StringIO use plugin/sample_config.yaml relative path from test case fixed apexlake unittests upgraded to mock 2.0.0 to match python3 unittest.mock features fixed flake8 issues implement safe JSON decode with oslo_serialization.jsonutils.dump_as_bytes() implement safe unicode encode/decode with oslo_utils.encodeutils heat: convert pub key file from bytes to unicode pkg_resources returns raw bytes, in python3 we have to decode this to utf-8 unicode so JSON can encode it for heat template JIRA: YARDSTICK-452 Change-Id: Ib80dd1d0c0eb0592acd832b82f6a7f8f7c20bfda Signed-off-by: Ross Brattain --- tests/functional/test_cli_runner.py | 2 +- tests/functional/test_cli_scenario.py | 2 +- tests/functional/utils.py | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'tests/functional') diff --git a/tests/functional/test_cli_runner.py b/tests/functional/test_cli_runner.py index 195b572c7..620edc396 100755 --- a/tests/functional/test_cli_runner.py +++ b/tests/functional/test_cli_runner.py @@ -8,6 +8,7 @@ ############################################################################## +from __future__ import absolute_import import unittest from tests.functional import utils @@ -46,4 +47,3 @@ class RunnerTestCase(unittest.TestCase): res = self.yardstick("runner show Sequence") sequence = "sequence - list of values which are executed" in res self.assertTrue(sequence) - diff --git a/tests/functional/test_cli_scenario.py b/tests/functional/test_cli_scenario.py index 877973783..4741e8244 100755 --- a/tests/functional/test_cli_scenario.py +++ b/tests/functional/test_cli_scenario.py @@ -8,6 +8,7 @@ ############################################################################## +from __future__ import absolute_import import unittest from tests.functional import utils @@ -59,4 +60,3 @@ class ScenarioTestCase(unittest.TestCase): res = self.yardstick("scenario show Pktgen") pktgen = "Execute pktgen between two hosts" in res self.assertTrue(pktgen) - diff --git a/tests/functional/utils.py b/tests/functional/utils.py index aaaaaac22..b96d2dd50 100755 --- a/tests/functional/utils.py +++ b/tests/functional/utils.py @@ -7,13 +7,13 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from __future__ import absolute_import + import copy -import json import os -import shutil import subprocess - +from oslo_serialization import jsonutils from oslo_utils import encodeutils @@ -40,11 +40,11 @@ class Yardstick(object): """Call yardstick in the shell :param cmd: yardstick command - :param getjson: in cases, when yardstick prints JSON, you can catch output - deserialized + :param getjson: in cases, when yardstick prints JSON, you can catch + output deserialized TO DO: - :param report_path: if present, yardstick command and its output will be - written to file with passed file name + :param report_path: if present, yardstick command and its output will + be written to file with passed file name :param raw: don't write command itself to report file. Only output will be written """ @@ -53,11 +53,11 @@ class Yardstick(object): cmd = cmd.split(" ") try: output = encodeutils.safe_decode(subprocess.check_output( - self.args + cmd, stderr=subprocess.STDOUT, env=self.env)) + self.args + cmd, stderr=subprocess.STDOUT, env=self.env), + 'utf-8') if getjson: - return json.loads(output) + return jsonutils.loads(output) return output except subprocess.CalledProcessError as e: raise e - -- cgit 1.2.3-korg