diff options
-rw-r--r-- | openstack/common/db/sqlalchemy/session.py | 3 | ||||
-rw-r--r-- | openstack/common/jsonutils.py | 8 | ||||
-rw-r--r-- | openstack/common/policy.py | 3 | ||||
-rw-r--r-- | openstack/common/rpc/common.py | 6 | ||||
-rw-r--r-- | openstack/common/wsgi.py | 3 | ||||
-rw-r--r-- | tests/unit/rpc/test_common.py | 14 | ||||
-rw-r--r-- | tests/unit/rpc/test_kombu.py | 10 | ||||
-rw-r--r-- | tests/unit/rpc/test_proxy.py | 4 | ||||
-rw-r--r-- | tools/pip-requires | 1 |
9 files changed, 34 insertions, 18 deletions
diff --git a/openstack/common/db/sqlalchemy/session.py b/openstack/common/db/sqlalchemy/session.py index a19fc01..d2a54ee 100644 --- a/openstack/common/db/sqlalchemy/session.py +++ b/openstack/common/db/sqlalchemy/session.py @@ -246,6 +246,7 @@ import time from eventlet import greenthread from oslo.config import cfg +import six from sqlalchemy import exc as sqla_exc import sqlalchemy.interfaces from sqlalchemy.interfaces import PoolListener @@ -483,7 +484,7 @@ def _add_regexp_listener(dbapi_con, con_record): def regexp(expr, item): reg = re.compile(expr) - return reg.search(unicode(item)) is not None + return reg.search(six.text_type(item)) is not None dbapi_con.create_function('regexp', 2, regexp) diff --git a/openstack/common/jsonutils.py b/openstack/common/jsonutils.py index f3cc0e9..bf23403 100644 --- a/openstack/common/jsonutils.py +++ b/openstack/common/jsonutils.py @@ -41,6 +41,8 @@ import json import types import xmlrpclib +import six + from openstack.common import timeutils @@ -93,7 +95,7 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, # value of itertools.count doesn't get caught by nasty_type_tests # and results in infinite loop when list(value) is called. if type(value) == itertools.count: - return unicode(value) + return six.text_type(value) # FIXME(vish): Workaround for LP bug 852095. Without this workaround, # tests that raise an exception in a mocked method that @@ -137,12 +139,12 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, return recursive(value.__dict__, level=level + 1) else: if any(test(value) for test in _nasty_type_tests): - return unicode(value) + return six.text_type(value) return value except TypeError: # Class objects are tricky since they may define something like # __iter__ defined but it isn't callable as list(). - return unicode(value) + return six.text_type(value) def dumps(value, default=to_primitive, **kwargs): diff --git a/openstack/common/policy.py b/openstack/common/policy.py index 6126774..21ea010 100644 --- a/openstack/common/policy.py +++ b/openstack/common/policy.py @@ -60,6 +60,7 @@ import abc import re import urllib +import six import urllib2 from openstack.common.gettextutils import _ @@ -775,5 +776,5 @@ class GenericCheck(Check): # TODO(termie): do dict inspection via dot syntax match = self.match % target if self.kind in creds: - return match == unicode(creds[self.kind]) + return match == six.text_type(creds[self.kind]) return False diff --git a/openstack/common/rpc/common.py b/openstack/common/rpc/common.py index 2bc7c61..d74425d 100644 --- a/openstack/common/rpc/common.py +++ b/openstack/common/rpc/common.py @@ -22,6 +22,7 @@ import sys import traceback from oslo.config import cfg +import six from openstack.common.gettextutils import _ from openstack.common import importutils @@ -299,7 +300,8 @@ def serialize_remote_exception(failure_info, log_failure=True): tb = traceback.format_exception(*failure_info) failure = failure_info[1] if log_failure: - LOG.error(_("Returning exception %s to caller"), unicode(failure)) + LOG.error(_("Returning exception %s to caller"), + six.text_type(failure)) LOG.error(tb) kwargs = {} @@ -309,7 +311,7 @@ def serialize_remote_exception(failure_info, log_failure=True): data = { 'class': str(failure.__class__.__name__), 'module': str(failure.__class__.__module__), - 'message': unicode(failure), + 'message': six.text_type(failure), 'tb': tb, 'args': failure.args, 'kwargs': kwargs diff --git a/openstack/common/wsgi.py b/openstack/common/wsgi.py index 064c09c..9e92ffe 100644 --- a/openstack/common/wsgi.py +++ b/openstack/common/wsgi.py @@ -32,6 +32,7 @@ import eventlet.wsgi from oslo.config import cfg import routes import routes.middleware +import six import webob.dec import webob.exc from xml.dom import minidom @@ -453,7 +454,7 @@ class JSONDictSerializer(DictSerializer): if isinstance(obj, datetime.datetime): _dtime = obj - datetime.timedelta(microseconds=obj.microsecond) return _dtime.isoformat() - return unicode(obj) + return six.text_type(obj) return jsonutils.dumps(data, default=sanitizer) diff --git a/tests/unit/rpc/test_common.py b/tests/unit/rpc/test_common.py index 2248a8f..18951df 100644 --- a/tests/unit/rpc/test_common.py +++ b/tests/unit/rpc/test_common.py @@ -20,6 +20,7 @@ Unit Tests for 'common' functons used through rpc code. import logging import sys +import six from oslo.config import cfg from openstack.common import exception @@ -96,7 +97,8 @@ class RpcCommonTestCase(test_utils.BaseTestCase): after_exc = rpc_common.deserialize_remote_exception(FLAGS, serialized) self.assertTrue(isinstance(after_exc, NotImplementedError)) #assure the traceback was added - self.assertTrue('raise NotImplementedError' in unicode(after_exc)) + self.assertTrue('raise NotImplementedError' in + six.text_type(after_exc)) def test_deserialize_remote_custom_exception(self): failure = { @@ -109,9 +111,9 @@ class RpcCommonTestCase(test_utils.BaseTestCase): after_exc = rpc_common.deserialize_remote_exception(FLAGS, serialized) self.assertTrue(isinstance(after_exc, exception.OpenstackException)) - self.assertTrue('An unknown' in unicode(after_exc)) + self.assertTrue('An unknown' in six.text_type(after_exc)) #assure the traceback was added - self.assertTrue('raise OpenstackException' in unicode(after_exc)) + self.assertTrue('raise OpenstackException' in six.text_type(after_exc)) def test_deserialize_remote_exception_bad_module(self): failure = { @@ -138,7 +140,8 @@ class RpcCommonTestCase(test_utils.BaseTestCase): after_exc = rpc_common.deserialize_remote_exception(FLAGS, serialized) self.assertTrue(isinstance(after_exc, FakeUserDefinedException)) #assure the traceback was added - self.assertTrue('raise FakeUserDefinedException' in unicode(after_exc)) + self.assertTrue('raise FakeUserDefinedException' in + six.text_type(after_exc)) def test_deserialize_remote_exception_args_and_kwargs(self): """ @@ -178,7 +181,8 @@ class RpcCommonTestCase(test_utils.BaseTestCase): after_exc = rpc_common.deserialize_remote_exception(FLAGS, serialized) self.assertTrue(isinstance(after_exc, rpc_common.RemoteError)) #assure the traceback was added - self.assertTrue('raise FakeIDontExistException' in unicode(after_exc)) + self.assertTrue('raise FakeIDontExistException' in + six.text_type(after_exc)) def test_loading_old_nova_config(self): self.config(rpc_backend='nova.rpc.impl_qpid') diff --git a/tests/unit/rpc/test_kombu.py b/tests/unit/rpc/test_kombu.py index ae07bed..73ce2ce 100644 --- a/tests/unit/rpc/test_kombu.py +++ b/tests/unit/rpc/test_kombu.py @@ -26,6 +26,7 @@ import contextlib import logging import mock +import six from oslo.config import cfg from openstack.common import exception @@ -465,9 +466,10 @@ class RpcKombuTestCase(amqp.BaseRpcAMQPTestCase): "args": {"value": value}}) self.fail("should have thrown Exception") except NotImplementedError as exc: - self.assertTrue(value in unicode(exc)) + self.assertTrue(value in six.text_type(exc)) #Traceback should be included in exception message - self.assertTrue('raise NotImplementedError(value)' in unicode(exc)) + self.assertTrue('raise NotImplementedError(value)' in + six.text_type(exc)) def test_call_converted_exception(self): """Test that exception gets passed back properly. @@ -492,9 +494,9 @@ class RpcKombuTestCase(amqp.BaseRpcAMQPTestCase): "args": {"value": value}}) self.fail("should have thrown Exception") except exception.ApiError as exc: - self.assertTrue(value in unicode(exc)) + self.assertTrue(value in six.text_type(exc)) #Traceback should be included in exception message - self.assertTrue('exception.ApiError' in unicode(exc)) + self.assertTrue('exception.ApiError' in six.text_type(exc)) def test_create_worker(self): meth = 'declare_topic_consumer' diff --git a/tests/unit/rpc/test_proxy.py b/tests/unit/rpc/test_proxy.py index fe4bffb..a84a7ea 100644 --- a/tests/unit/rpc/test_proxy.py +++ b/tests/unit/rpc/test_proxy.py @@ -20,6 +20,8 @@ Unit Tests for rpc.proxy import copy +import six + from openstack.common import context from openstack.common import lockutils from openstack.common import rpc @@ -102,7 +104,7 @@ class RpcProxyTestCase(utils.BaseTestCase): self.assertEqual( u'Timeout while waiting on RPC response - ' 'topic: "fake_topic", RPC method: "fake_method" ' - 'info: "The spider got you"', unicode(exc)) + 'info: "The spider got you"', six.text_type(exc)) _check_args(ctxt, topic, expected_msg, timeout=42) self.stubs.Set(rpc, rpc_method, _fake_rpc_method) diff --git a/tools/pip-requires b/tools/pip-requires index 619488b..b31640b 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -12,3 +12,4 @@ stevedore SQLAlchemy>=0.7.8,<=0.7.9 oslo.config>=1.1.0 qpid-python +six |