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/unit/common/test_httpClient.py | 10 +++++++--- tests/unit/common/test_openstack_utils.py | 1 + tests/unit/common/test_template_format.py | 1 + tests/unit/common/test_utils.py | 8 +++++--- 4 files changed, 14 insertions(+), 6 deletions(-) (limited to 'tests/unit/common') diff --git a/tests/unit/common/test_httpClient.py b/tests/unit/common/test_httpClient.py index 94ac1c891..eb09d1a52 100644 --- a/tests/unit/common/test_httpClient.py +++ b/tests/unit/common/test_httpClient.py @@ -6,9 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from __future__ import absolute_import + import unittest + import mock -import json +from oslo_serialization import jsonutils from yardstick.common import httpClient @@ -21,8 +24,9 @@ class HttpClientTestCase(unittest.TestCase): data = {'hello': 'world'} headers = {'Content-Type': 'application/json'} httpClient.HttpClient().post(url, data) - mock_requests.post.assert_called_with(url, data=json.dumps(data), - headers=headers) + mock_requests.post.assert_called_with( + url, data=jsonutils.dump_as_bytes(data), + headers=headers) @mock.patch('yardstick.common.httpClient.requests') def test_get(self, mock_requests): diff --git a/tests/unit/common/test_openstack_utils.py b/tests/unit/common/test_openstack_utils.py index ef619aace..d610e181c 100644 --- a/tests/unit/common/test_openstack_utils.py +++ b/tests/unit/common/test_openstack_utils.py @@ -11,6 +11,7 @@ # Unittest for yardstick.common.openstack_utils +from __future__ import absolute_import import unittest import mock diff --git a/tests/unit/common/test_template_format.py b/tests/unit/common/test_template_format.py index 0e1a1a57d..2a7d80b4d 100644 --- a/tests/unit/common/test_template_format.py +++ b/tests/unit/common/test_template_format.py @@ -12,6 +12,7 @@ # yardstick: this file is copied from python-heatclient and slightly modified +from __future__ import absolute_import import mock import unittest import yaml diff --git a/tests/unit/common/test_utils.py b/tests/unit/common/test_utils.py index a64c1f1ab..267c71312 100644 --- a/tests/unit/common/test_utils.py +++ b/tests/unit/common/test_utils.py @@ -9,6 +9,7 @@ # Unittest for yardstick.common.utils +from __future__ import absolute_import import os import mock import unittest @@ -17,9 +18,10 @@ from yardstick.common import utils class IterSubclassesTestCase(unittest.TestCase): -# Disclaimer: this class is a modified copy from -# rally/tests/unit/common/plugin/test_discover.py -# Copyright 2015: Mirantis Inc. + # Disclaimer: this class is a modified copy from + # rally/tests/unit/common/plugin/test_discover.py + # Copyright 2015: Mirantis Inc. + def test_itersubclasses(self): class A(object): pass -- cgit 1.2.3-korg