Make functional object tests actually run

Object tests were being skipped over because we were checking for the
wrong service name. Also fixes list_containers() method.

Change-Id: Ia0b71cefb327eaaf5f641067d0c80b91c93e6c45
This commit is contained in:
Caleb Boylan
2015-11-10 14:12:10 -08:00
parent ef0ccaaef4
commit 26412cbe83
3 changed files with 31 additions and 20 deletions

View File

@@ -419,7 +419,7 @@ class ContainerUpdate(task_manager.Task):
class ContainerList(task_manager.Task):
def main(self, client):
return client.swift_client.list(**self.args)
return client.swift_client.get_account(**self.args)[1]
class ObjectCapabilities(task_manager.Task):
@@ -444,7 +444,7 @@ class ObjectUpdate(task_manager.Task):
class ObjectList(task_manager.Task):
def main(self, client):
return client.swift_client.list(**self.args)
return client.swift_client.get_container(**self.args)[1]
class ObjectMetadata(task_manager.Task):

View File

@@ -3258,9 +3258,10 @@ class OpenStackCloud(object):
raise OpenStackCloudException(
"Error in deleting server: {0}".format(e))
def list_containers(self):
def list_containers(self, full_listing=True):
try:
return manager.submitTask(_tasks.ContainerList())
return self.manager.submitTask(_tasks.ContainerList(
full_listing=full_listing))
except swift_exceptions.ClientException as e:
raise OpenStackCloudException(
"Container list failed: %s (%s/%s)" % (
@@ -3456,9 +3457,10 @@ class OpenStackCloud(object):
raise OpenStackCloudException(
'Failed at action ({action}) [{error}]:'.format(**r))
def list_objects(self, container):
def list_objects(self, container, full_listing=True):
try:
return self.manager.submitTask(_tasks.ObjectList(container))
return self.manager.submitTask(_tasks.ObjectList(
container=container, full_listing=full_listing))
except swift_exceptions.ClientException as e:
raise OpenStackCloudException(
"Object list failed: %s (%s/%s)" % (

View File

@@ -33,15 +33,17 @@ class TestObject(base.TestCase):
def setUp(self):
super(TestObject, self).setUp()
self.cloud = openstack_cloud(cloud='devstack')
if not self.cloud.has_service('object'):
if not self.cloud.has_service('object-store'):
self.skipTest('Object service not supported by cloud')
def test_create_object(self):
'''Test uploading small and large files.'''
container = str(uuid.uuid4())
self.addDetail('container', content.text_content(container))
self.addCleanup(self.cloud.delete_container, container)
self.cloud.create_container(container)
container_name = str(uuid.uuid4())
self.addDetail('container', content.text_content(container_name))
self.addCleanup(self.cloud.delete_container, container_name)
self.cloud.create_container(container_name)
self.assertEqual(container_name,
self.cloud.list_containers()[0]['name'])
sizes = (
(64 * 1024, 1), # 64K, one segment
(50 * 1024 ** 2, 5) # 50MB, 5 segments
@@ -53,14 +55,21 @@ class TestObject(base.TestCase):
sparse_file.write("\0")
sparse_file.flush()
name = 'test-%d' % size
self.cloud.create_object(container, name, sparse_file.name,
self.cloud.create_object(container_name, name,
sparse_file.name,
segment_size=segment_size)
self.assertFalse(self.cloud.is_object_stale(container, name,
sparse_file.name))
self.assertFalse(self.cloud.is_object_stale(
container_name, name,
sparse_file.name
)
)
self.assertIsNotNone(
self.cloud.get_object_metadata(container, name))
self.assertEqual([name], self.cloud.list_objects(container))
self.cloud.delete_object(container, name)
self.assertEmpty(self.cloud.list_objects(container))
self.assertEqual([container], self.cloud.list_containers())
self.cloud.delete_container(container)
self.cloud.get_object_metadata(container_name, name))
self.assertEqual(
name,
self.cloud.list_objects(container_name)[0]['name'])
self.cloud.delete_object(container_name, name)
self.assertEqual([], self.cloud.list_objects(container_name))
self.assertEqual(container_name,
self.cloud.list_containers()[0]['name'])
self.cloud.delete_container(container_name)