Use six.StringIO/BytesIO instead of StringIO.StringIO
to keep Python 3.x compatibility, use six.StringIO/BytesIO to replace StringIO.StringIO StringIO works for unicode BytesIO works for bytes Change-Id: I93e043c633e1de9e4dedcb0a313032403b6a70fb Closes-Bug: #1280100
This commit is contained in:
parent
6165966203
commit
01903933db
|
@ -13,10 +13,10 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
from oslo.config import cfg
|
||||
import six
|
||||
|
||||
#NOTE(bcwaldon): importing this to get the default_store option
|
||||
import glance.api.v1.images
|
||||
|
@ -76,7 +76,7 @@ class BaseTestCase(object):
|
|||
store = self.get_store()
|
||||
|
||||
image_id = str(uuid.uuid4())
|
||||
image_data = StringIO.StringIO('XXX')
|
||||
image_data = six.StringIO('XXX')
|
||||
image_checksum = 'bc9189406be84ec297464a514221406d'
|
||||
try:
|
||||
uri, add_size, add_checksum, _ = store.add(image_id, image_data, 3)
|
||||
|
|
|
@ -22,10 +22,10 @@ RBD backend. This backend must be running Ceph Bobtail (0.56) or later.
|
|||
|
||||
import ConfigParser
|
||||
import os
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import oslo.config.cfg
|
||||
import six
|
||||
import testtools
|
||||
|
||||
from glance.common import exception
|
||||
|
@ -135,7 +135,7 @@ class TestRBDStore(store_tests.BaseTestCase, testtools.TestCase):
|
|||
|
||||
image_id = unicode(str(uuid.uuid4()))
|
||||
image_size = 300
|
||||
image_data = StringIO.StringIO('X' * image_size)
|
||||
image_data = six.StringIO('X' * image_size)
|
||||
image_checksum = '41757066eaff7c4c6c965556b4d3c6c5'
|
||||
|
||||
uri, add_size, add_checksum = store.add(image_id,
|
||||
|
|
|
@ -26,10 +26,10 @@ import os
|
|||
import os.path
|
||||
import random
|
||||
import string
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import oslo.config.cfg
|
||||
import six
|
||||
import six.moves.urllib.parse as urlparse
|
||||
import testtools
|
||||
|
||||
|
@ -194,7 +194,7 @@ class TestSwiftStore(store_tests.BaseTestCase, testtools.TestCase):
|
|||
store = self.get_store()
|
||||
image_id = str(uuid.uuid4())
|
||||
image_size = 5242880 # 5 MB
|
||||
image_data = StringIO.StringIO('X' * image_size)
|
||||
image_data = six.StringIO('X' * image_size)
|
||||
image_checksum = 'eb7f8c3716b9f059cee7617a4ba9d0d3'
|
||||
uri, add_size, add_checksum, _ = store.add(image_id,
|
||||
image_data,
|
||||
|
@ -276,7 +276,7 @@ class TestSwiftStore(store_tests.BaseTestCase, testtools.TestCase):
|
|||
non_image_obj)
|
||||
|
||||
# Simulate exceeding 'image_size_cap' setting
|
||||
image_data = StringIO.StringIO('X' * image_size)
|
||||
image_data = six.StringIO('X' * image_size)
|
||||
image_data = common_utils.LimitingReader(image_data, image_size - 1)
|
||||
image_id = str(uuid.uuid4())
|
||||
self.assertRaises(exception.ImageSizeLimitExceeded,
|
||||
|
@ -455,7 +455,7 @@ class TestSwiftStore(store_tests.BaseTestCase, testtools.TestCase):
|
|||
store = self.get_store(context=context)
|
||||
|
||||
image_id = str(uuid.uuid4())
|
||||
image_data = StringIO.StringIO('XXX')
|
||||
image_data = six.StringIO('XXX')
|
||||
uri, _, _, _ = store.add(image_id, image_data, 3)
|
||||
|
||||
location = glance.store.location.Location(
|
||||
|
@ -512,7 +512,7 @@ class TestSwiftStore(store_tests.BaseTestCase, testtools.TestCase):
|
|||
store = self.get_store(context=context)
|
||||
|
||||
image_id = str(uuid.uuid4())
|
||||
image_data = StringIO.StringIO('data')
|
||||
image_data = six.StringIO('data')
|
||||
uri, _, _, _ = store.add(image_id, image_data, 4)
|
||||
|
||||
location = glance.store.location.Location(
|
||||
|
|
|
@ -11,9 +11,10 @@
|
|||
# under the License.
|
||||
|
||||
import mock
|
||||
import StringIO
|
||||
import sys
|
||||
|
||||
import six
|
||||
|
||||
import glance.cmd.api
|
||||
import glance.cmd.cache_cleaner
|
||||
import glance.cmd.cache_pruner
|
||||
|
@ -41,7 +42,7 @@ class TestGlanceApiCmd(test_utils.BaseTestCase):
|
|||
super(TestGlanceApiCmd, self).setUp()
|
||||
self.__argv_backup = sys.argv
|
||||
sys.argv = ['glance-api']
|
||||
self.stderr = StringIO.StringIO()
|
||||
self.stderr = six.StringIO()
|
||||
sys.stderr = self.stderr
|
||||
|
||||
self.stubs.Set(glance.common.config, 'load_paste_app',
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
# under the License.
|
||||
|
||||
import os
|
||||
import StringIO
|
||||
import tempfile
|
||||
|
||||
import six
|
||||
import webob
|
||||
|
||||
from glance.common import exception
|
||||
|
@ -77,14 +77,14 @@ class TestUtils(test_utils.BaseTestCase):
|
|||
"""Ensure limiting reader class accesses all bytes of file"""
|
||||
BYTES = 1024
|
||||
bytes_read = 0
|
||||
data = StringIO.StringIO("*" * BYTES)
|
||||
data = six.StringIO("*" * BYTES)
|
||||
for chunk in utils.LimitingReader(data, BYTES):
|
||||
bytes_read += len(chunk)
|
||||
|
||||
self.assertEqual(bytes_read, BYTES)
|
||||
|
||||
bytes_read = 0
|
||||
data = StringIO.StringIO("*" * BYTES)
|
||||
data = six.StringIO("*" * BYTES)
|
||||
reader = utils.LimitingReader(data, BYTES)
|
||||
byte = reader.read(1)
|
||||
while len(byte) != 0:
|
||||
|
@ -99,7 +99,7 @@ class TestUtils(test_utils.BaseTestCase):
|
|||
|
||||
def _consume_all_iter():
|
||||
bytes_read = 0
|
||||
data = StringIO.StringIO("*" * BYTES)
|
||||
data = six.StringIO("*" * BYTES)
|
||||
for chunk in utils.LimitingReader(data, BYTES - 1):
|
||||
bytes_read += len(chunk)
|
||||
|
||||
|
@ -107,7 +107,7 @@ class TestUtils(test_utils.BaseTestCase):
|
|||
|
||||
def _consume_all_read():
|
||||
bytes_read = 0
|
||||
data = StringIO.StringIO("*" * BYTES)
|
||||
data = six.StringIO("*" * BYTES)
|
||||
reader = utils.LimitingReader(data, BYTES - 1)
|
||||
byte = reader.read(1)
|
||||
while len(byte) != 0:
|
||||
|
|
|
@ -20,12 +20,12 @@ import errno
|
|||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import fixtures
|
||||
import mox
|
||||
from oslo.config import cfg
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
from glance.openstack.common import units
|
||||
|
@ -157,7 +157,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
# First add an image...
|
||||
image_id = str(uuid.uuid4())
|
||||
file_contents = "chunk00000remainder"
|
||||
image_file = StringIO.StringIO(file_contents)
|
||||
image_file = six.StringIO(file_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(image_id,
|
||||
image_file,
|
||||
|
@ -198,7 +198,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
expected_checksum = hashlib.md5(expected_file_contents).hexdigest()
|
||||
expected_location = "file://%s/%s" % (self.test_dir,
|
||||
expected_image_id)
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(expected_image_id,
|
||||
image_file,
|
||||
|
@ -239,7 +239,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
expected_checksum = hashlib.md5(expected_file_contents).hexdigest()
|
||||
expected_location = "file://%s/%s" % (store_map[1],
|
||||
expected_image_id)
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(expected_image_id,
|
||||
image_file,
|
||||
|
@ -283,7 +283,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
expected_image_id = str(uuid.uuid4())
|
||||
expected_file_size = 5 * units.Ki # 5K
|
||||
expected_file_contents = "*" * expected_file_size
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
self.assertRaises(exception.StorageFull, self.store.add,
|
||||
expected_image_id, image_file, expected_file_size)
|
||||
|
@ -299,7 +299,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
json.dump(in_metadata, fptr)
|
||||
expected_file_size = 10
|
||||
expected_file_contents = "*" * expected_file_size
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
location, size, checksum, metadata = self.store.add(expected_image_id,
|
||||
image_file,
|
||||
|
@ -318,7 +318,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
json.dump(in_metadata, fptr)
|
||||
expected_file_size = 10
|
||||
expected_file_contents = "*" * expected_file_size
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
location, size, checksum, metadata = self.store.add(expected_image_id,
|
||||
image_file,
|
||||
|
@ -334,7 +334,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
self.config(filesystem_store_metadata_file=jsonfilename)
|
||||
expected_file_size = 10
|
||||
expected_file_contents = "*" * expected_file_size
|
||||
image_file = StringIO.StringIO(expected_file_contents)
|
||||
image_file = six.StringIO(expected_file_contents)
|
||||
|
||||
location, size, checksum, metadata = self.store.add(expected_image_id,
|
||||
image_file,
|
||||
|
@ -351,12 +351,12 @@ class TestStore(base.IsolatedUnitTest):
|
|||
image_id = str(uuid.uuid4())
|
||||
file_size = 5 * units.Ki # 5K
|
||||
file_contents = "*" * file_size
|
||||
image_file = StringIO.StringIO(file_contents)
|
||||
image_file = six.StringIO(file_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(image_id,
|
||||
image_file,
|
||||
file_size)
|
||||
image_file = StringIO.StringIO("nevergonnamakeit")
|
||||
image_file = six.StringIO("nevergonnamakeit")
|
||||
self.assertRaises(exception.Duplicate,
|
||||
self.store.add,
|
||||
image_id, image_file, 0)
|
||||
|
@ -367,7 +367,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
file_size = 5 * units.Ki # 5K
|
||||
file_contents = "*" * file_size
|
||||
path = os.path.join(self.test_dir, image_id)
|
||||
image_file = StringIO.StringIO(file_contents)
|
||||
image_file = six.StringIO(file_contents)
|
||||
|
||||
m = mox.Mox()
|
||||
m.StubOutWithMock(__builtin__, 'open')
|
||||
|
@ -424,7 +424,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
file_size = 5 * units.Ki # 5K
|
||||
file_contents = "*" * file_size
|
||||
path = os.path.join(self.test_dir, image_id)
|
||||
image_file = StringIO.StringIO(file_contents)
|
||||
image_file = six.StringIO(file_contents)
|
||||
|
||||
def fake_Error(size):
|
||||
raise AttributeError()
|
||||
|
@ -444,7 +444,7 @@ class TestStore(base.IsolatedUnitTest):
|
|||
image_id = str(uuid.uuid4())
|
||||
file_size = 5 * units.Ki # 5K
|
||||
file_contents = "*" * file_size
|
||||
image_file = StringIO.StringIO(file_contents)
|
||||
image_file = six.StringIO(file_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(image_id,
|
||||
image_file,
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
|
||||
import copy
|
||||
import os
|
||||
import StringIO
|
||||
import sys
|
||||
import UserDict
|
||||
import uuid
|
||||
|
||||
import fixtures
|
||||
import six
|
||||
|
||||
from glance.cmd import replicator as glance_replicator
|
||||
from glance.openstack.common import jsonutils
|
||||
|
@ -106,7 +106,7 @@ class FakeHTTPConnection(object):
|
|||
def getresponse(self):
|
||||
class FakeResponse(object):
|
||||
def __init__(self, (code, body, headers)):
|
||||
self.body = StringIO.StringIO(body)
|
||||
self.body = six.StringIO(body)
|
||||
self.headers = headers
|
||||
self.status = code
|
||||
|
||||
|
@ -241,7 +241,7 @@ class ImageServiceTestCase(test_utils.BaseTestCase):
|
|||
class FakeHttpResponse(object):
|
||||
def __init__(self, headers, data):
|
||||
self.headers = headers
|
||||
self.data = StringIO.StringIO(data)
|
||||
self.data = six.StringIO(data)
|
||||
|
||||
def getheaders(self):
|
||||
return self.headers
|
||||
|
@ -339,7 +339,7 @@ class ReplicationCommandsTestCase(test_utils.BaseTestCase):
|
|||
|
||||
stdout = sys.stdout
|
||||
orig_img_service = glance_replicator.get_image_service
|
||||
sys.stdout = StringIO.StringIO()
|
||||
sys.stdout = six.StringIO()
|
||||
try:
|
||||
glance_replicator.get_image_service = get_image_service
|
||||
glance_replicator.replication_size(options, args)
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import StringIO
|
||||
|
||||
import six
|
||||
import stubout
|
||||
|
||||
from glance.common import exception
|
||||
|
@ -91,7 +90,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
self.assertRaises(exception.ImageSizeLimitExceeded,
|
||||
self.store.add,
|
||||
'fake_image_id',
|
||||
utils.LimitingReader(StringIO.StringIO('xx'), 1),
|
||||
utils.LimitingReader(six.StringIO('xx'), 1),
|
||||
2)
|
||||
self.assertEqual(self.store.fs.called_commands,
|
||||
['exists', 'put', 'delete'])
|
||||
|
|
|
@ -17,11 +17,11 @@ from contextlib import contextmanager
|
|||
import datetime
|
||||
import hashlib
|
||||
import os
|
||||
import StringIO
|
||||
import tempfile
|
||||
import time
|
||||
|
||||
import fixtures
|
||||
import six
|
||||
from six.moves import xrange
|
||||
import stubout
|
||||
|
||||
|
@ -43,7 +43,7 @@ FIXTURE_DATA = '*' * FIXTURE_LENGTH
|
|||
class ImageCacheTestCase(object):
|
||||
|
||||
def _setup_fixture_file(self):
|
||||
FIXTURE_FILE = StringIO.StringIO(FIXTURE_DATA)
|
||||
FIXTURE_FILE = six.StringIO(FIXTURE_DATA)
|
||||
|
||||
self.assertFalse(self.cache.is_cached(1))
|
||||
|
||||
|
@ -66,7 +66,7 @@ class ImageCacheTestCase(object):
|
|||
"""
|
||||
self._setup_fixture_file()
|
||||
|
||||
buff = StringIO.StringIO()
|
||||
buff = six.StringIO()
|
||||
with self.cache.open_for_read(1) as cache_file:
|
||||
for chunk in cache_file:
|
||||
buff.write(chunk)
|
||||
|
@ -80,7 +80,7 @@ class ImageCacheTestCase(object):
|
|||
"""
|
||||
self._setup_fixture_file()
|
||||
|
||||
buff = StringIO.StringIO()
|
||||
buff = six.StringIO()
|
||||
with self.cache.open_for_read(1) as cache_file:
|
||||
for chunk in cache_file:
|
||||
buff.write(chunk)
|
||||
|
@ -114,7 +114,7 @@ class ImageCacheTestCase(object):
|
|||
self.assertFalse(self.cache.is_cached(image_id))
|
||||
|
||||
for image_id in (1, 2):
|
||||
FIXTURE_FILE = StringIO.StringIO(FIXTURE_DATA)
|
||||
FIXTURE_FILE = six.StringIO(FIXTURE_DATA)
|
||||
self.assertTrue(self.cache.cache_image_file(image_id,
|
||||
FIXTURE_FILE))
|
||||
|
||||
|
@ -183,7 +183,7 @@ class ImageCacheTestCase(object):
|
|||
# pruning, and the images that are least recently accessed
|
||||
# should be the ones pruned...
|
||||
for x in xrange(10):
|
||||
FIXTURE_FILE = StringIO.StringIO(FIXTURE_DATA)
|
||||
FIXTURE_FILE = six.StringIO(FIXTURE_DATA)
|
||||
self.assertTrue(self.cache.cache_image_file(x,
|
||||
FIXTURE_FILE))
|
||||
|
||||
|
@ -191,7 +191,7 @@ class ImageCacheTestCase(object):
|
|||
|
||||
# OK, hit the images that are now cached...
|
||||
for x in xrange(10):
|
||||
buff = StringIO.StringIO()
|
||||
buff = six.StringIO()
|
||||
with self.cache.open_for_read(x) as cache_file:
|
||||
for chunk in cache_file:
|
||||
buff.write(chunk)
|
||||
|
@ -216,13 +216,13 @@ class ImageCacheTestCase(object):
|
|||
"""
|
||||
self.assertEqual(0, self.cache.get_cache_size())
|
||||
|
||||
FIXTURE_FILE = StringIO.StringIO(FIXTURE_DATA)
|
||||
FIXTURE_FILE = six.StringIO(FIXTURE_DATA)
|
||||
self.assertTrue(self.cache.cache_image_file('xxx', FIXTURE_FILE))
|
||||
|
||||
self.assertEqual(1024, self.cache.get_cache_size())
|
||||
|
||||
# OK, hit the image that is now cached...
|
||||
buff = StringIO.StringIO()
|
||||
buff = six.StringIO()
|
||||
with self.cache.open_for_read('xxx') as cache_file:
|
||||
for chunk in cache_file:
|
||||
buff.write(chunk)
|
||||
|
@ -242,7 +242,7 @@ class ImageCacheTestCase(object):
|
|||
self.assertFalse(self.cache.is_cached(1))
|
||||
self.assertFalse(self.cache.is_queued(1))
|
||||
|
||||
FIXTURE_FILE = StringIO.StringIO(FIXTURE_DATA)
|
||||
FIXTURE_FILE = six.StringIO(FIXTURE_DATA)
|
||||
|
||||
self.assertTrue(self.cache.queue_image(1))
|
||||
|
||||
|
|
|
@ -13,9 +13,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import StringIO
|
||||
|
||||
import mock
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
from glance.common import utils
|
||||
|
@ -43,7 +42,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
self.location = StoreLocation(self.store_specs)
|
||||
# Provide enough data to get more than one chunk iteration.
|
||||
self.data_len = 3 * units.Ki
|
||||
self.data_iter = StringIO.StringIO('*' * self.data_len)
|
||||
self.data_iter = six.StringIO('*' * self.data_len)
|
||||
|
||||
def test_add_w_image_size_zero(self):
|
||||
"""Assert that correct size is returned even though 0 was provided."""
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
"""Tests the S3 backend store"""
|
||||
|
||||
import hashlib
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import boto.s3.connection
|
||||
import six
|
||||
import stubout
|
||||
|
||||
from glance.common import exception
|
||||
|
@ -80,7 +80,7 @@ def stub_out_s3(stubs):
|
|||
return checksum_hex, None
|
||||
|
||||
def set_contents_from_file(self, fp, replace=False, **kwargs):
|
||||
self.data = StringIO.StringIO()
|
||||
self.data = six.StringIO()
|
||||
for bytes in fp:
|
||||
self.data.write(bytes)
|
||||
self.size = self.data.len
|
||||
|
@ -122,7 +122,7 @@ def stub_out_s3(stubs):
|
|||
fixture_buckets = {'glance': FakeBucket('glance')}
|
||||
b = fixture_buckets['glance']
|
||||
k = b.new_key(FAKE_UUID)
|
||||
k.set_contents_from_file(StringIO.StringIO("*" * FIVE_KB))
|
||||
k.set_contents_from_file(six.StringIO("*" * FIVE_KB))
|
||||
|
||||
def fake_connection_constructor(self, *args, **kwargs):
|
||||
host = kwargs.get('host')
|
||||
|
@ -237,7 +237,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
S3_CONF['s3_store_host'],
|
||||
S3_CONF['s3_store_bucket'],
|
||||
expected_image_id)
|
||||
image_s3 = StringIO.StringIO(expected_s3_contents)
|
||||
image_s3 = six.StringIO(expected_s3_contents)
|
||||
|
||||
location, size, checksum, _ = self.store.add(expected_image_id,
|
||||
image_s3,
|
||||
|
@ -249,7 +249,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
|
||||
loc = get_location_from_uri(expected_location)
|
||||
(new_image_s3, new_image_size) = self.store.get(loc)
|
||||
new_image_contents = StringIO.StringIO()
|
||||
new_image_contents = six.StringIO()
|
||||
for chunk in new_image_s3:
|
||||
new_image_contents.write(chunk)
|
||||
new_image_s3_size = new_image_contents.len
|
||||
|
@ -285,7 +285,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
new_conf['s3_store_host'],
|
||||
new_conf['s3_store_bucket'],
|
||||
expected_image_id)
|
||||
image_s3 = StringIO.StringIO(expected_s3_contents)
|
||||
image_s3 = six.StringIO(expected_s3_contents)
|
||||
|
||||
self.config(**new_conf)
|
||||
self.store = Store()
|
||||
|
@ -310,7 +310,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
Tests that adding an image with an existing identifier
|
||||
raises an appropriate exception
|
||||
"""
|
||||
image_s3 = StringIO.StringIO("nevergonnamakeit")
|
||||
image_s3 = six.StringIO("nevergonnamakeit")
|
||||
self.assertRaises(exception.Duplicate,
|
||||
self.store.add,
|
||||
FAKE_UUID, image_s3, 0)
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import StringIO
|
||||
|
||||
import six
|
||||
import stubout
|
||||
|
||||
from glance.common import exception
|
||||
|
@ -55,6 +54,6 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
self.assertRaises(exception.ImageSizeLimitExceeded,
|
||||
self.store.add,
|
||||
'fake_image_id',
|
||||
utils.LimitingReader(StringIO.StringIO('xx'), 1),
|
||||
utils.LimitingReader(six.StringIO('xx'), 1),
|
||||
2)
|
||||
self.assertEqual(called_commands, ['list -r', 'create', 'delete'])
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
import hashlib
|
||||
import httplib
|
||||
import mock
|
||||
import StringIO
|
||||
import tempfile
|
||||
import uuid
|
||||
|
||||
from oslo.config import cfg
|
||||
import six
|
||||
import six.moves.urllib.parse as urlparse
|
||||
import stubout
|
||||
import swiftclient
|
||||
|
@ -69,7 +69,7 @@ def stub_out_swiftclient(stubs, swift_store_auth_version):
|
|||
}
|
||||
}
|
||||
fixture_objects = {'glance/%s' % FAKE_UUID:
|
||||
StringIO.StringIO("*" * FIVE_KB)}
|
||||
six.StringIO("*" * FIVE_KB)}
|
||||
|
||||
def fake_head_container(url, token, container, **kwargs):
|
||||
if container not in fixture_containers:
|
||||
|
@ -99,7 +99,7 @@ def stub_out_swiftclient(stubs, swift_store_auth_version):
|
|||
'etag': etag}
|
||||
return etag
|
||||
if hasattr(contents, 'read'):
|
||||
fixture_object = StringIO.StringIO()
|
||||
fixture_object = six.StringIO()
|
||||
chunk = contents.read(CHUNKSIZE)
|
||||
checksum = hashlib.md5()
|
||||
while chunk:
|
||||
|
@ -108,7 +108,7 @@ def stub_out_swiftclient(stubs, swift_store_auth_version):
|
|||
chunk = contents.read(CHUNKSIZE)
|
||||
etag = checksum.hexdigest()
|
||||
else:
|
||||
fixture_object = StringIO.StringIO(contents)
|
||||
fixture_object = six.StringIO(contents)
|
||||
etag = hashlib.md5(fixture_object.getvalue()).hexdigest()
|
||||
read_len = fixture_object.len
|
||||
if read_len > MAX_SWIFT_OBJECT_SIZE:
|
||||
|
@ -149,7 +149,7 @@ def stub_out_swiftclient(stubs, swift_store_auth_version):
|
|||
chunk_keys = sorted([k for k in fixture_headers.keys()
|
||||
if k.startswith(fixture_key) and
|
||||
k != fixture_key])
|
||||
result = StringIO.StringIO()
|
||||
result = six.StringIO()
|
||||
for key in chunk_keys:
|
||||
result.write(fixture_objects[key].getvalue())
|
||||
else:
|
||||
|
@ -157,7 +157,7 @@ def stub_out_swiftclient(stubs, swift_store_auth_version):
|
|||
|
||||
if byte_range is not None:
|
||||
start = int(byte_range.split('=')[1].strip('-'))
|
||||
result = StringIO.StringIO(result.getvalue()[start:])
|
||||
result = six.StringIO(result.getvalue()[start:])
|
||||
fixture_headers[fixture_key]['content-length'] = len(
|
||||
result.getvalue())
|
||||
|
||||
|
@ -321,7 +321,7 @@ class SwiftTests(object):
|
|||
loc = 'swift+https://%s:key@localhost:8080/glance/%s'
|
||||
expected_location = loc % (self.swift_store_user,
|
||||
expected_image_id)
|
||||
image_swift = StringIO.StringIO(expected_swift_contents)
|
||||
image_swift = six.StringIO(expected_swift_contents)
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -378,7 +378,7 @@ class SwiftTests(object):
|
|||
expected_checksum = \
|
||||
hashlib.md5(expected_swift_contents).hexdigest()
|
||||
|
||||
image_swift = StringIO.StringIO(expected_swift_contents)
|
||||
image_swift = six.StringIO(expected_swift_contents)
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -410,7 +410,7 @@ class SwiftTests(object):
|
|||
swift_store_container='noexist')
|
||||
self.store = Store()
|
||||
|
||||
image_swift = StringIO.StringIO("nevergonnamakeit")
|
||||
image_swift = six.StringIO("nevergonnamakeit")
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -440,7 +440,7 @@ class SwiftTests(object):
|
|||
loc = 'swift+https://%s:key@localhost:8080/noexist/%s'
|
||||
expected_location = loc % (self.swift_store_user,
|
||||
expected_image_id)
|
||||
image_swift = StringIO.StringIO(expected_swift_contents)
|
||||
image_swift = six.StringIO(expected_swift_contents)
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -479,7 +479,7 @@ class SwiftTests(object):
|
|||
loc = 'swift+https://%s:key@localhost:8080/glance/%s'
|
||||
expected_location = loc % (self.swift_store_user,
|
||||
expected_image_id)
|
||||
image_swift = StringIO.StringIO(expected_swift_contents)
|
||||
image_swift = six.StringIO(expected_swift_contents)
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -532,7 +532,7 @@ class SwiftTests(object):
|
|||
loc = 'swift+https://%s:key@localhost:8080/glance/%s'
|
||||
expected_location = loc % (self.swift_store_user,
|
||||
expected_image_id)
|
||||
image_swift = StringIO.StringIO(expected_swift_contents)
|
||||
image_swift = six.StringIO(expected_swift_contents)
|
||||
|
||||
global SWIFT_PUT_OBJECT_CALLS
|
||||
SWIFT_PUT_OBJECT_CALLS = 0
|
||||
|
@ -578,7 +578,7 @@ class SwiftTests(object):
|
|||
Tests that adding an image with an existing identifier
|
||||
raises an appropriate exception
|
||||
"""
|
||||
image_swift = StringIO.StringIO("nevergonnamakeit")
|
||||
image_swift = six.StringIO("nevergonnamakeit")
|
||||
self.assertRaises(exception.Duplicate,
|
||||
self.store.add,
|
||||
FAKE_UUID, image_swift, 0)
|
||||
|
@ -597,7 +597,7 @@ class SwiftTests(object):
|
|||
except Exception:
|
||||
pass
|
||||
|
||||
image_swift = StringIO.StringIO(swift_contents)
|
||||
image_swift = six.StringIO(swift_contents)
|
||||
connection.put_object.side_effect = exception.ClientConnectionError
|
||||
self.store._delete_stale_chunks = fake_delete_chunk
|
||||
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
"""Tests the VMware Datastore backend store"""
|
||||
|
||||
import hashlib
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import mock
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
from glance.openstack.common import units
|
||||
|
@ -167,7 +167,7 @@ class TestStore(base.StoreClearingUnitTest):
|
|||
expected_image_id,
|
||||
VMWARE_DATASTORE_CONF['vmware_datacenter_path'],
|
||||
VMWARE_DATASTORE_CONF['vmware_datastore_name'])
|
||||
image = StringIO.StringIO(expected_contents)
|
||||
image = six.StringIO(expected_contents)
|
||||
with mock.patch('httplib.HTTPConnection') as HttpConn:
|
||||
HttpConn.return_value = FakeHTTPConnection()
|
||||
location, size, checksum, _ = self.store.add(expected_image_id,
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
import copy
|
||||
import datetime
|
||||
import hashlib
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import mock
|
||||
from oslo.config import cfg
|
||||
import routes
|
||||
import six
|
||||
import webob
|
||||
|
||||
import glance.api
|
||||
|
@ -532,7 +532,7 @@ class TestGlanceAPI(base.IsolatedUnitTest):
|
|||
req = webob.Request.blank("/images")
|
||||
req.method = 'POST'
|
||||
|
||||
req.body_file = StringIO.StringIO('X' * (CONF.image_size_cap + 1))
|
||||
req.body_file = six.StringIO('X' * (CONF.image_size_cap + 1))
|
||||
for k, v in fixture_headers.iteritems():
|
||||
req.headers[k] = v
|
||||
|
||||
|
@ -979,7 +979,7 @@ class TestGlanceAPI(base.IsolatedUnitTest):
|
|||
req = webob.Request.blank("/images")
|
||||
req.method = 'POST'
|
||||
|
||||
req.body_file = StringIO.StringIO('X' * (CONF.image_size_cap))
|
||||
req.body_file = six.StringIO('X' * (CONF.image_size_cap))
|
||||
for k, v in fixture_headers.iteritems():
|
||||
req.headers[k] = v
|
||||
|
||||
|
@ -1034,7 +1034,7 @@ class TestGlanceAPI(base.IsolatedUnitTest):
|
|||
req.headers['transfer-encoding'] = 'chunked'
|
||||
req.headers['x-image-disk-format'] = 'vhd'
|
||||
req.headers['x-image-container-format'] = 'ovf'
|
||||
req.body_file = StringIO.StringIO('X' * (CONF.image_size_cap))
|
||||
req.body_file = six.StringIO('X' * (CONF.image_size_cap))
|
||||
res = req.get_response(self.api)
|
||||
self.assertEqual(res.status_int, 403)
|
||||
|
||||
|
@ -1655,7 +1655,7 @@ class TestGlanceAPI(base.IsolatedUnitTest):
|
|||
req = webob.Request.blank("/images/%s" % image_id)
|
||||
req.method = 'PUT'
|
||||
|
||||
req.body_file = StringIO.StringIO('X' * (CONF.image_size_cap + 1))
|
||||
req.body_file = six.StringIO('X' * (CONF.image_size_cap + 1))
|
||||
for k, v in fixture_headers.iteritems():
|
||||
req.headers[k] = v
|
||||
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
# under the License.
|
||||
|
||||
import mock
|
||||
import StringIO
|
||||
import uuid
|
||||
|
||||
import six
|
||||
import webob
|
||||
|
||||
import glance.api.v2.image_data
|
||||
|
@ -327,7 +327,7 @@ class TestImageDataDeserializer(test_utils.BaseTestCase):
|
|||
request.headers['Content-Type'] = 'application/octet-stream'
|
||||
# If we use body_file, webob assumes we want to do a chunked upload,
|
||||
# ignoring the Content-Length header
|
||||
request.body_file = StringIO.StringIO('YYY')
|
||||
request.body_file = six.StringIO('YYY')
|
||||
output = self.deserializer.upload(request)
|
||||
data = output.pop('data')
|
||||
self.assertEqual(data.read(), 'YYY')
|
||||
|
@ -337,7 +337,7 @@ class TestImageDataDeserializer(test_utils.BaseTestCase):
|
|||
def test_upload_chunked_with_content_length(self):
|
||||
request = unit_test_utils.get_fake_request()
|
||||
request.headers['Content-Type'] = 'application/octet-stream'
|
||||
request.body_file = StringIO.StringIO('YYY')
|
||||
request.body_file = six.StringIO('YYY')
|
||||
# The deserializer shouldn't care if the Content-Length is
|
||||
# set when the user is attempting to send chunked data.
|
||||
request.headers['Content-Length'] = 3
|
||||
|
|
|
@ -21,12 +21,12 @@ import os
|
|||
import shlex
|
||||
import shutil
|
||||
import socket
|
||||
import StringIO
|
||||
import subprocess
|
||||
import uuid
|
||||
|
||||
import fixtures
|
||||
from oslo.config import cfg
|
||||
import six
|
||||
import stubout
|
||||
import testtools
|
||||
import webob
|
||||
|
@ -508,7 +508,7 @@ class FakeAuthMiddleware(wsgi.Middleware):
|
|||
class FakeHTTPResponse(object):
|
||||
def __init__(self, status=200, headers=None, data=None, *args, **kwargs):
|
||||
data = data or 'I am a teapot, short and stout\n'
|
||||
self.data = StringIO.StringIO(data)
|
||||
self.data = six.StringIO(data)
|
||||
self.read = self.data.read
|
||||
self.status = status
|
||||
self.headers = headers or {'content-length': len(data)}
|
||||
|
|
Loading…
Reference in New Issue