From 20aec0db199fc7e8f13dbea096fd04d06b158845 Mon Sep 17 00:00:00 2001 From: abhishekkekane Date: Thu, 28 Jan 2016 02:23:33 -0800 Subject: [PATCH] Add python 3 support Replaced iter.next() with next(iter) Replaced __builtin__ with six.moves.builtin Replaced unicode with six.text_type Repleaced Configparser with six.moves.configparser Blueprint magnum-python3 Change-Id: I9f084ef4fae1ec1111e26142e2e89bad18acbf45 --- .../common/pythonk8sclient/swagger_client/api_client.py | 5 +++-- magnum/tests/functional/python_client_base.py | 6 +++--- magnum/tests/unit/common/cert_manager/test_local.py | 8 ++++---- magnum/tests/unit/common/x509/test_validator.py | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/magnum/common/pythonk8sclient/swagger_client/api_client.py b/magnum/common/pythonk8sclient/swagger_client/api_client.py index b4e62af92d..dd7a62ac9d 100644 --- a/magnum/common/pythonk8sclient/swagger_client/api_client.py +++ b/magnum/common/pythonk8sclient/swagger_client/api_client.py @@ -33,6 +33,7 @@ from datetime import datetime from datetime import date # python 2 and python 3 compatibility library +import six from six import iteritems import six.moves.builtins as __builtin__ from six.moves.urllib import parse as urlparse @@ -184,7 +185,7 @@ class ApiClient(object): """ if isinstance(obj, type(None)): return None - elif isinstance(obj, (unicode, str, int, float, bool, tuple, file)): + elif isinstance(obj, (six.text_type, str, int, float, bool, tuple, file)): return obj elif isinstance(obj, list): return [self.sanitize_for_serialization(sub_obj) @@ -488,7 +489,7 @@ class ApiClient(object): try: value = klass(data) except UnicodeEncodeError: - value = unicode(data) + value = six.text_type(data) except TypeError: value = data return value diff --git a/magnum/tests/functional/python_client_base.py b/magnum/tests/functional/python_client_base.py index 154ac66c64..30ed678275 100644 --- a/magnum/tests/functional/python_client_base.py +++ b/magnum/tests/functional/python_client_base.py @@ -17,13 +17,13 @@ test_magnum Tests for `magnum` module. """ -import ConfigParser import os import subprocess import tempfile import time import fixtures +from six.moves import configparser from magnum.common.utils import rmtree_without_raise from magnum.tests import base @@ -53,7 +53,7 @@ class BaseMagnumClient(base.TestCase): keypair_id = cliutils.env('KEYPAIR_ID') copy_logs = cliutils.env('COPY_LOGS') - config = ConfigParser.RawConfigParser() + config = configparser.RawConfigParser() if config.read('functional_creds.conf'): # the OR pattern means the environment is preferred for # override @@ -68,7 +68,7 @@ class BaseMagnumClient(base.TestCase): keypair_id = keypair_id or config.get('magnum', 'keypair_id') try: copy_logs = copy_logs or config.get('magnum', 'copy_logs') - except ConfigParser.NoOptionError: + except configparser.NoOptionError: pass cls.image_id = image_id diff --git a/magnum/tests/unit/common/cert_manager/test_local.py b/magnum/tests/unit/common/cert_manager/test_local.py index 2a893f8393..9c44f2b588 100644 --- a/magnum/tests/unit/common/cert_manager/test_local.py +++ b/magnum/tests/unit/common/cert_manager/test_local.py @@ -106,7 +106,7 @@ class TestLocalManager(base.BaseTestCase): def _store_cert(self): file_mock = mock.mock_open() # Attempt to store the cert - with mock.patch('__builtin__.open', file_mock, create=True): + with mock.patch('six.moves.builtins.open', file_mock, create=True): cert_id = local_cert_manager.CertManager.store_cert( certificate=self.certificate, intermediates=self.intermediates, @@ -131,7 +131,7 @@ class TestLocalManager(base.BaseTestCase): def _get_cert(self, cert_id): file_mock = mock.mock_open() # Attempt to retrieve the cert - with mock.patch('__builtin__.open', file_mock, create=True): + with mock.patch('six.moves.builtins.open', file_mock, create=True): data = local_cert_manager.CertManager.get_cert(cert_id) # Verify the correct files were opened @@ -154,7 +154,7 @@ class TestLocalManager(base.BaseTestCase): file_mock = mock.mock_open() file_mock.side_effect = fake_open # Attempt to retrieve the cert - with mock.patch('__builtin__.open', file_mock, create=True): + with mock.patch('six.moves.builtins.open', file_mock, create=True): self.assertRaises( exception.CertificateStorageException, local_cert_manager.CertManager.get_cert, @@ -187,7 +187,7 @@ class TestLocalManager(base.BaseTestCase): def test_store_cert(self): self._store_cert() - @mock.patch('__builtin__.open', create=True) + @mock.patch('six.moves.builtins.open', create=True) def test_store_cert_with_io_error(self, file_mock): file_mock.side_effect = IOError diff --git a/magnum/tests/unit/common/x509/test_validator.py b/magnum/tests/unit/common/x509/test_validator.py index 9cd71440bb..fc54fc8c1b 100644 --- a/magnum/tests/unit/common/x509/test_validator.py +++ b/magnum/tests/unit/common/x509/test_validator.py @@ -54,7 +54,7 @@ class TestValidators(unittest.TestCase): key_usage = self._build_key_usage(critical=True) with self.assertRaises(CertificateValidationError): - v.filter_allowed_extensions([key_usage], ['subjectAltName']).next() + next(v.filter_allowed_extensions([key_usage], ['subjectAltName'])) def test_merge_key_usage(self): key_usage = self._build_key_usage(critical=True)