Merge "Moved swift container cleanup to a class method."

This commit is contained in:
Jenkins 2013-05-26 01:15:04 +00:00 committed by Gerrit Code Review
commit 2326ec4062
6 changed files with 38 additions and 74 deletions

View File

@ -47,3 +47,31 @@ class BaseObjectTest(tempest.test.BaseTestCase):
except exceptions.EndpointNotFound:
skip_msg = "No OpenStack Object Storage API endpoint"
raise cls.skipException(skip_msg)
@classmethod
def delete_containers(cls, containers, container_client=None,
object_client=None):
"""Remove given containers and all objects in them.
The containers should be visible from the container_client given.
Will not throw any error if the containers don't exist.
:param containers: list of container names to remove
:param container_client: if None, use cls.container_client, this means
that the default testing user will be used (see 'username' in
'etc/tempest.conf')
:param object_client: if None, use cls.object_client
"""
if container_client is None:
container_client = cls.container_client
if object_client is None:
object_client = cls.object_client
for cont in containers:
try:
objlist = container_client.list_all_container_objects(cont)
# delete every object in the container
for obj in objlist:
object_client.delete_object(cont, obj['name'])
container_client.delete_container(cont)
except exceptions.NotFound:
pass

View File

@ -29,15 +29,7 @@ class ContainerTest(base.BaseObjectTest):
@classmethod
def tearDownClass(cls):
for container in cls.containers:
objlist = \
cls.container_client.list_all_container_objects(container)
# delete every object in the container
for obj in objlist:
resp, _ = \
cls.object_client.delete_object(container, obj['name'])
# delete the container
resp, _ = cls.container_client.delete_container(container)
cls.delete_containers(cls.containers)
@attr(type='smoke')
def test_create_container(self):
@ -125,8 +117,3 @@ class ContainerTest(base.BaseObjectTest):
self.assertEqual(resp['status'], '204')
self.assertNotIn('x-container-meta-name', resp)
self.assertNotIn('x-container-meta-description', resp)
# delete container
resp, _ = self.container_client.delete_container(container_name)
self.assertEqual(resp['status'], '204')
self.containers.remove(container_name)

View File

@ -48,14 +48,8 @@ class ContainerSyncTest(base.BaseObjectTest):
@classmethod
def tearDownClass(cls):
for cont_name, client in cls.clients.items():
objlist = client[0].list_all_container_objects(cont_name)
# delete every object in the container
if objlist:
for obj in objlist:
resp, _ = client[1].delete_object(cont_name, obj['name'])
# delete the container
resp, _ = client[0].delete_container(cont_name)
for client in cls.clients.values():
cls.delete_containers(cls.containers, client[0], client[1])
@testtools.skip('Until Bug #1093743 is resolved.')
@attr(type=['positive', 'gate'])

View File

@ -40,15 +40,7 @@ class ObjectExpiryTest(base.BaseObjectTest):
But delete action for the expired object is raising
NotFound exception and also non empty container cannot be deleted.
"""
objlist = \
cls.container_client.list_all_container_objects(cls.container_name)
# delete every object in the container
if objlist:
for obj in objlist:
resp, _ = cls.object_client.delete_object(cls.container_name,
obj['name'])
# delete the container
resp, _ = cls.container_client.delete_container(cls.container_name)
cls.delete_containers([cls.container_name])
@testtools.skip('Until Bug #1069849 is resolved.')
@attr(type='gate')

View File

@ -32,6 +32,7 @@ class ObjectTest(base.BaseObjectTest):
super(ObjectTest, cls).setUpClass()
cls.container_name = rand_name(name='TestContainer')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.data.setup_test_user()
resp, body = cls.token_client.auth(cls.data.test_user,
@ -44,14 +45,7 @@ class ObjectTest(base.BaseObjectTest):
@classmethod
def tearDownClass(cls):
objlist = cls.container_client.list_all_container_objects(
cls.container_name)
# delete every object in the container
for obj in objlist:
resp, _ = cls.object_client.delete_object(cls.container_name,
obj['name'])
# delete the container
resp, _ = cls.container_client.delete_container(cls.container_name)
cls.delete_containers(cls.containers)
# delete the user setup created
cls.data.teardown_all()
@ -198,9 +192,11 @@ class ObjectTest(base.BaseObjectTest):
# create a container to use as asource container
src_container_name = rand_name(name='TestSourceContainer')
self.container_client.create_container(src_container_name)
self.containers.append(src_container_name)
# create a container to use as a destination container
dst_container_name = rand_name(name='TestDestinationContainer')
self.container_client.create_container(dst_container_name)
self.containers.append(dst_container_name)
# create object in source container
object_name = rand_name(name='Object')
data = arbitrary_string(size=len(object_name) * 2,
@ -233,17 +229,6 @@ class ObjectTest(base.BaseObjectTest):
except Exception as e:
self.fail("Got exception :%s ; while copying"
" object across containers" % e)
finally:
# delete objects from respective containers
resp, _ = self.object_client.delete_object(dst_container_name,
object_name)
resp, _ = self.object_client.delete_object(src_container_name,
object_name)
# delete containers created in this method
resp, _ = self.container_client.delete_container(
src_container_name)
resp, _ = self.container_client.delete_container(
dst_container_name)
@attr(type=['negative', 'gate'])
def test_write_object_without_using_creds(self):
@ -389,14 +374,7 @@ class PublicObjectTest(base.BaseObjectTest):
self.container_client.create_container(self.container_name)
def tearDown(self):
objlist = self.container_client.list_all_container_objects(
self.container_name)
# delete every object in the container
for obj in objlist:
resp, _ = self.object_client.delete_object(
self.container_name, obj['name'])
# delete the container
resp, _ = self.container_client.delete_container(self.container_name)
self.delete_containers([self.container_name])
super(PublicObjectTest, self).tearDown()
@attr(type='smoke')

View File

@ -28,15 +28,7 @@ class ContainerTest(base.BaseObjectTest):
@classmethod
def tearDownClass(cls):
for container in cls.containers:
objlist = \
cls.container_client.list_all_container_objects(container)
# delete every object in the container
for obj in objlist:
resp, _ = \
cls.object_client.delete_object(container, obj['name'])
# delete the container
resp, _ = cls.container_client.delete_container(container)
cls.delete_containers(cls.containers)
def assertContainer(self, container, count, byte, versioned):
resp, _ = self.container_client.list_container_metadata(container)
@ -94,10 +86,3 @@ class ContainerTest(base.BaseObjectTest):
vers_container_name)
self.assertContainer(vers_container_name, '0', '0',
'Missing Header')
# delete containers
resp, _ = self.container_client.delete_container(base_container_name)
self.assertEqual(resp['status'], '204')
self.containers.remove(base_container_name)
resp, _ = self.container_client.delete_container(vers_container_name)
self.assertEqual(resp['status'], '204')
self.containers.remove(vers_container_name)