diff --git a/tox.ini b/tox.ini index acd8fded26..2387e34bed 100644 --- a/tox.ini +++ b/tox.ini @@ -33,7 +33,11 @@ commands = python -bb -m testtools.run \ trove/tests/unittests/common/test_context.py \ trove/tests/unittests/common/test_exception.py \ + trove/tests/unittests/common/test_notification.py \ + trove/tests/unittests/common/test_remote.py \ + trove/tests/unittests/common/test_stream_codecs.py \ trove/tests/unittests/common/test_template.py \ + trove/tests/unittests/common/test_utils.py \ trove/tests/unittests/common/test_wsgi.py [testenv:debug] diff --git a/trove/common/utils.py b/trove/common/utils.py index f86b306db7..4f376c0238 100644 --- a/trove/common/utils.py +++ b/trove/common/utils.py @@ -20,7 +20,6 @@ import inspect import os import shutil import time -import types import uuid from eventlet.timeout import Timeout @@ -32,6 +31,7 @@ from oslo_utils import importutils from oslo_utils import strutils from oslo_utils import timeutils from passlib import utils as passlib_utils +import six import six.moves.urllib.parse as urlparse from trove.common import cfg @@ -326,4 +326,4 @@ def is_collection(item): """Return True is a given item is an iterable collection, but not a string. """ return (isinstance(item, collections.Iterable) and - not isinstance(item, types.StringTypes)) + not isinstance(item, (bytes, six.text_type))) diff --git a/trove/tests/fakes/swift.py b/trove/tests/fakes/swift.py index 4dcf209ee3..4e1eabdcc8 100644 --- a/trove/tests/fakes/swift.py +++ b/trove/tests/fakes/swift.py @@ -15,7 +15,6 @@ from hashlib import md5 from mock import MagicMock, patch -import httplib import json import os import socket @@ -24,6 +23,7 @@ import swiftclient.client as swift_client import uuid from oslo_log import log as logging +from six.moves import http_client from swiftclient import client as swift from trove.common.i18n import _ # noqa @@ -77,10 +77,10 @@ class FakeSwiftConnection(object): LOG.debug("fake head_container(%s)" % container) if container == 'missing_container': raise swift.ClientException('fake exception', - http_status=httplib.NOT_FOUND) + http_status=http_client.NOT_FOUND) elif container == 'unauthorized_container': raise swift.ClientException('fake exception', - http_status=httplib.UNAUTHORIZED) + http_status=http_client.UNAUTHORIZED) elif container == 'socket_error_on_head': raise socket.error(111, 'ECONNREFUSED') pass @@ -102,7 +102,7 @@ class FakeSwiftConnection(object): {'container': container, 'name': name}) checksum = md5() if self.manifest_prefix and self.manifest_name == name: - for object_name in sorted(self.container_objects.iterkeys()): + for object_name in sorted(self.container_objects): object_checksum = md5(self.container_objects[object_name]) # The manifest file etag for a HEAD or GET is the checksum of # the concatenated checksums. diff --git a/trove/tests/unittests/common/test_stream_codecs.py b/trove/tests/unittests/common/test_stream_codecs.py index 0b62d079fa..6659bd05d7 100644 --- a/trove/tests/unittests/common/test_stream_codecs.py +++ b/trove/tests/unittests/common/test_stream_codecs.py @@ -30,8 +30,9 @@ class TestStreamCodecs(trove_testtools.TestCase): def test_serialize_deserialize_base64codec(self): random_data = bytearray(Random.new().read(12)) - data = ['abc', - 'numbers01234', + data = [b'abc', + b'numbers01234', + b'non-ascii:\xe9\xff', random_data] codec = stream_codecs.Base64Codec()