Move helper methods for object_storage to base.py

Move the create_container and create_object methods
out of test files into base.py to reduce code
duplication.
Same pattern as in other base.py files.

Refactored setUp and cleanUp methods.

Change-Id: Ibec4e6a7e4e544a2311d5c44af17103854c78021
This commit is contained in:
Cindy Lu 2016-05-31 16:07:43 -07:00
parent c24869b191
commit 6bdc3ed6d4
18 changed files with 102 additions and 133 deletions

View File

@ -15,6 +15,7 @@
from tempest.common import custom_matchers
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import exceptions as lib_exc
import tempest.test
@ -57,16 +58,41 @@ class BaseObjectTest(tempest.test.BaseTestCase):
cls.container_client.auth_provider.clear_auth()
cls.account_client.auth_provider.clear_auth()
cls.containers = []
@classmethod
def delete_containers(cls, containers, container_client=None,
def create_container(cls):
# wrapper that returns a test container
container_name = data_utils.rand_name(name='TestContainer')
cls.container_client.create_container(container_name)
cls.containers.append(container_name)
return container_name
@classmethod
def create_object(cls, container_name, object_name=None,
data=None, metadata=None):
# wrapper that returns a test object
if object_name is None:
object_name = data_utils.rand_name(name='TestObject')
if data is None:
data = data_utils.arbitrary_string()
cls.object_client.create_object(container_name,
object_name,
data,
metadata=metadata)
return object_name, data
@classmethod
def delete_containers(cls, container_client=None,
object_client=None):
"""Remove given containers and all objects in them.
"""Remove 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.
Will not check that object and container deletions succeed.
: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')
@ -76,7 +102,7 @@ class BaseObjectTest(tempest.test.BaseTestCase):
container_client = cls.container_client
if object_client is None:
object_client = cls.object_client
for cont in containers:
for cont in cls.containers:
try:
objlist = container_client.list_all_container_objects(cont)
# delete every object in the container

View File

@ -27,7 +27,7 @@ class BulkTest(base.BaseObjectTest):
self.containers = []
def tearDown(self):
self.delete_containers(self.containers)
self.delete_containers()
super(BulkTest, self).tearDown()
def _create_archive(self):

View File

@ -34,8 +34,7 @@ class AccountQuotasTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(AccountQuotasTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name="TestContainer")
cls.container_client.create_container(cls.container_name)
cls.container_name = cls.create_container()
# Retrieve a ResellerAdmin auth data and use it to set a quota
# on the client's account
@ -73,8 +72,7 @@ class AccountQuotasTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
if hasattr(cls, "container_name"):
cls.delete_containers([cls.container_name])
cls.delete_containers()
super(AccountQuotasTest, cls).resource_cleanup()
@test.attr(type="smoke")

View File

@ -36,8 +36,7 @@ class AccountQuotasNegativeTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(AccountQuotasNegativeTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name="TestContainer")
cls.container_client.create_container(cls.container_name)
cls.container_name = cls.create_container()
# Retrieve a ResellerAdmin auth data and use it to set a quota
# on the client's account
@ -74,8 +73,7 @@ class AccountQuotasNegativeTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
if hasattr(cls, "container_name"):
cls.delete_containers([cls.container_name])
cls.delete_containers()
super(AccountQuotasNegativeTest, cls).resource_cleanup()
@test.attr(type=["negative"])

View File

@ -50,7 +50,7 @@ class AccountTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
cls.delete_containers(cls.containers)
cls.delete_containers()
super(AccountTest, cls).resource_cleanup()
@test.attr(type='smoke')

View File

@ -39,11 +39,10 @@ class ObjectTestACLs(base.BaseObjectTest):
def setUp(self):
super(ObjectTestACLs, self).setUp()
self.container_name = data_utils.rand_name(name='TestContainer')
self.container_client.create_container(self.container_name)
self.container_name = self.create_container()
def tearDown(self):
self.delete_containers([self.container_name])
self.delete_containers()
super(ObjectTestACLs, self).tearDown()
@test.idempotent_id('a3270f3f-7640-4944-8448-c7ea783ea5b6')

View File

@ -38,8 +38,7 @@ class ContainerQuotasTest(base.BaseObjectTest):
Maximum object count of the container.
"""
super(ContainerQuotasTest, self).setUp()
self.container_name = data_utils.rand_name(name="TestContainer")
self.container_client.create_container(self.container_name)
self.container_name = self.create_container()
metadata = {"quota-bytes": str(QUOTA_BYTES),
"quota-count": str(QUOTA_COUNT), }
self.container_client.update_container_metadata(
@ -47,7 +46,7 @@ class ContainerQuotasTest(base.BaseObjectTest):
def tearDown(self):
"""Cleans the container of any object after each test."""
self.delete_containers([self.container_name])
self.delete_containers()
super(ContainerQuotasTest, self).tearDown()
@test.idempotent_id('9a0fb034-86af-4df0-86fa-f8bd7db21ae0')

View File

@ -21,31 +21,11 @@ from tempest import test
class ContainerTest(base.BaseObjectTest):
def setUp(self):
super(ContainerTest, self).setUp()
self.containers = []
def tearDown(self):
self.delete_containers(self.containers)
self.delete_containers()
super(ContainerTest, self).tearDown()
def _create_container(self):
# setup container
container_name = data_utils.rand_name(name='TestContainer')
self.container_client.create_container(container_name)
self.containers.append(container_name)
return container_name
def _create_object(self, container_name, object_name=None):
# setup object
if object_name is None:
object_name = data_utils.rand_name(name='TestObject')
data = data_utils.arbitrary_string()
self.object_client.create_object(container_name,
object_name,
data)
return object_name
@test.attr(type='smoke')
@test.idempotent_id('92139d73-7819-4db1-85f8-3f2f22a8d91f')
def test_create_container(self):
@ -140,7 +120,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('95d3a249-b702-4082-a2c4-14bb860cf06a')
def test_delete_container(self):
# create a container
container_name = self._create_container()
container_name = self.create_container()
# delete container, success asserted within
resp, _ = self.container_client.delete_container(container_name)
self.assertHeaders(resp, 'Container', 'DELETE')
@ -150,8 +130,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('312ff6bd-5290-497f-bda1-7c5fec6697ab')
def test_list_container_contents(self):
# get container contents list
container_name = self._create_container()
object_name = self._create_object(container_name)
container_name = self.create_container()
object_name, _ = self.create_object(container_name)
resp, object_list = self.container_client.list_container_contents(
container_name)
@ -161,7 +141,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('4646ac2d-9bfb-4c7d-a3c5-0f527402b3df')
def test_list_container_contents_with_no_object(self):
# get empty container contents list
container_name = self._create_container()
container_name = self.create_container()
resp, object_list = self.container_client.list_container_contents(
container_name)
@ -171,9 +151,9 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('fe323a32-57b9-4704-a996-2e68f83b09bc')
def test_list_container_contents_with_delimiter(self):
# get container contents list using delimiter param
container_name = self._create_container()
container_name = self.create_container()
object_name = data_utils.rand_name(name='TestObject/')
self._create_object(container_name, object_name)
self.create_object(container_name, object_name)
params = {'delimiter': '/'}
resp, object_list = self.container_client.list_container_contents(
@ -185,8 +165,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('55b4fa5c-e12e-4ca9-8fcf-a79afe118522')
def test_list_container_contents_with_end_marker(self):
# get container contents list using end_marker param
container_name = self._create_container()
object_name = self._create_object(container_name)
container_name = self.create_container()
object_name, _ = self.create_object(container_name)
params = {'end_marker': 'ZzzzObject1234567890'}
resp, object_list = self.container_client.list_container_contents(
@ -198,8 +178,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('196f5034-6ab0-4032-9da9-a937bbb9fba9')
def test_list_container_contents_with_format_json(self):
# get container contents list using format_json param
container_name = self._create_container()
self._create_object(container_name)
container_name = self.create_container()
self.create_object(container_name)
params = {'format': 'json'}
resp, object_list = self.container_client.list_container_contents(
@ -217,8 +197,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('655a53ca-4d15-408c-a377-f4c6dbd0a1fa')
def test_list_container_contents_with_format_xml(self):
# get container contents list using format_xml param
container_name = self._create_container()
self._create_object(container_name)
container_name = self.create_container()
self.create_object(container_name)
params = {'format': 'xml'}
resp, object_list = self.container_client.list_container_contents(
@ -241,8 +221,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('297ec38b-2b61-4ff4-bcd1-7fa055e97b61')
def test_list_container_contents_with_limit(self):
# get container contents list using limit param
container_name = self._create_container()
object_name = self._create_object(container_name)
container_name = self.create_container()
object_name, _ = self.create_object(container_name)
params = {'limit': data_utils.rand_int_id(1, 10000)}
resp, object_list = self.container_client.list_container_contents(
@ -254,8 +234,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('c31ddc63-2a58-4f6b-b25c-94d2937e6867')
def test_list_container_contents_with_marker(self):
# get container contents list using marker param
container_name = self._create_container()
object_name = self._create_object(container_name)
container_name = self.create_container()
object_name, _ = self.create_object(container_name)
params = {'marker': 'AaaaObject1234567890'}
resp, object_list = self.container_client.list_container_contents(
@ -267,9 +247,9 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('58ca6cc9-6af0-408d-aaec-2a6a7b2f0df9')
def test_list_container_contents_with_path(self):
# get container contents list using path param
container_name = self._create_container()
container_name = self.create_container()
object_name = data_utils.rand_name(name='Swift/TestObject')
self._create_object(container_name, object_name)
self.create_object(container_name, object_name)
params = {'path': 'Swift'}
resp, object_list = self.container_client.list_container_contents(
@ -281,8 +261,8 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('77e742c7-caf2-4ec9-8aa4-f7d509a3344c')
def test_list_container_contents_with_prefix(self):
# get container contents list using prefix param
container_name = self._create_container()
object_name = self._create_object(container_name)
container_name = self.create_container()
object_name, _ = self.create_object(container_name)
prefix_key = object_name[0:8]
params = {'prefix': prefix_key}
@ -296,7 +276,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('96e68f0e-19ec-4aa2-86f3-adc6a45e14dd')
def test_list_container_metadata(self):
# List container metadata
container_name = self._create_container()
container_name = self.create_container()
metadata = {'name': 'Pictures'}
self.container_client.update_container_metadata(
@ -312,7 +292,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('a2faf936-6b13-4f8d-92a2-c2278355821e')
def test_list_no_container_metadata(self):
# HEAD container without metadata
container_name = self._create_container()
container_name = self.create_container()
resp, _ = self.container_client.list_container_metadata(
container_name)
@ -345,7 +325,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('2ae5f295-4bf1-4e04-bfad-21e54b62cec5')
def test_update_container_metadata_with_create_metadata(self):
# update container metadata using add metadata
container_name = self._create_container()
container_name = self.create_container()
metadata = {'test-container-meta1': 'Meta1'}
resp, _ = self.container_client.update_container_metadata(
@ -380,7 +360,7 @@ class ContainerTest(base.BaseObjectTest):
@test.idempotent_id('31f40a5f-6a52-4314-8794-cd89baed3040')
def test_update_container_metadata_with_create_metadata_key(self):
# update container metadata with a blank value of metadata
container_name = self._create_container()
container_name = self.create_container()
metadata = {'test-container-meta1': ''}
resp, _ = self.container_client.update_container_metadata(

View File

@ -24,18 +24,14 @@ class StaticWebTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(StaticWebTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name="TestContainer")
# This header should be posted on the container before every test
cls.headers_public_read_acl = {'Read': '.r:*,.rlistings'}
# Create test container and create one object in it
cls.container_client.create_container(cls.container_name)
cls.object_name = data_utils.rand_name(name="TestObject")
cls.object_data = data_utils.arbitrary_string()
cls.object_client.create_object(cls.container_name,
cls.object_name,
cls.object_data)
cls.container_name = cls.create_container()
cls.object_name, cls.object_data = cls.create_object(
cls.container_name)
cls.container_client.update_container_metadata(
cls.container_name,
@ -44,8 +40,7 @@ class StaticWebTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
if hasattr(cls, "container_name"):
cls.delete_containers([cls.container_name])
cls.delete_containers()
super(StaticWebTest, cls).resource_cleanup()
@test.idempotent_id('c1f055ab-621d-4a6a-831f-846fcb578b8b')

View File

@ -80,7 +80,7 @@ class ContainerSyncTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
for client in cls.clients.values():
cls.delete_containers(cls.containers, client[0], client[1])
cls.delete_containers(client[0], client[1])
super(ContainerSyncTest, cls).resource_cleanup()
def _test_container_synchronization(self, make_headers):

View File

@ -16,7 +16,6 @@
import time
from tempest.api.object_storage import base
from tempest.common.utils import data_utils
from tempest.lib import exceptions as lib_exc
from tempest import test
@ -25,19 +24,17 @@ class ObjectExpiryTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(ObjectExpiryTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_client.create_container(cls.container_name)
cls.container_name = cls.create_container()
def setUp(self):
super(ObjectExpiryTest, self).setUp()
# create object
self.object_name = data_utils.rand_name(name='TestObject')
resp, _ = self.object_client.create_object(self.container_name,
self.object_name, '')
self.object_name, _ = self.create_object(
self.container_name)
@classmethod
def resource_cleanup(cls):
cls.delete_containers([cls.container_name])
cls.delete_containers()
super(ObjectExpiryTest, cls).resource_cleanup()
def _test_object_expiry(self, metadata):

View File

@ -31,12 +31,9 @@ class ObjectFormPostTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(ObjectFormPostTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_name = cls.create_container()
cls.object_name = data_utils.rand_name(name='ObjectTemp')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.key = 'Meta'
cls.metadata = {'Temp-URL-Key': cls.key}
cls.account_client.create_account_metadata(metadata=cls.metadata)
@ -56,7 +53,7 @@ class ObjectFormPostTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
cls.account_client.delete_account_metadata(metadata=cls.metadata)
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ObjectFormPostTest, cls).resource_cleanup()
def get_multipart_form(self, expires=600):

View File

@ -32,12 +32,9 @@ class ObjectFormPostNegativeTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(ObjectFormPostNegativeTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_name = cls.create_container()
cls.object_name = data_utils.rand_name(name='ObjectTemp')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.key = 'Meta'
cls.metadata = {'Temp-URL-Key': cls.key}
cls.account_client.create_account_metadata(metadata=cls.metadata)
@ -57,7 +54,7 @@ class ObjectFormPostNegativeTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
cls.account_client.delete_account_metadata(metadata=cls.metadata)
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ObjectFormPostNegativeTest, cls).resource_cleanup()
def get_multipart_form(self, expires=600):

View File

@ -35,24 +35,13 @@ class ObjectTest(base.BaseObjectTest):
@classmethod
def resource_setup(cls):
super(ObjectTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.container_name = cls.create_container()
@classmethod
def resource_cleanup(cls):
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ObjectTest, cls).resource_cleanup()
def _create_object(self, metadata=None):
# setup object
object_name = data_utils.rand_name(name='TestObject')
data = data_utils.arbitrary_string()
self.object_client.create_object(self.container_name,
object_name, data, metadata=metadata)
return object_name, data
def _upload_segments(self):
# create object
object_name = data_utils.rand_name(name='LObject')
@ -335,7 +324,7 @@ class ObjectTest(base.BaseObjectTest):
@test.idempotent_id('7a94c25d-66e6-434c-9c38-97d4e2c29945')
def test_update_object_metadata(self):
# update object metadata
object_name, data = self._create_object()
object_name, _ = self.create_object(self.container_name)
metadata = {'X-Object-Meta-test-meta': 'Meta'}
resp, _ = self.object_client.update_object_metadata(
@ -431,8 +420,8 @@ class ObjectTest(base.BaseObjectTest):
@test.idempotent_id('0dbbe89c-6811-4d84-a2df-eca2bdd40c0e')
def test_update_object_metadata_with_x_object_metakey(self):
# update object metadata with a blenk value of metadata
object_name, data = self._create_object()
# update object metadata with a blank value of metadata
object_name, _ = self.create_object(self.container_name)
update_metadata = {'X-Object-Meta-test-meta': ''}
resp, _ = self.object_client.update_object_metadata(
@ -494,7 +483,7 @@ class ObjectTest(base.BaseObjectTest):
@test.idempotent_id('170fb90e-f5c3-4b1f-ae1b-a18810821172')
def test_list_no_object_metadata(self):
# get empty list of object metadata
object_name, data = self._create_object()
object_name, _ = self.create_object(self.container_name)
resp, _ = self.object_client.list_object_metadata(
self.container_name,
@ -548,7 +537,7 @@ class ObjectTest(base.BaseObjectTest):
# retrieve object's data (in response body)
# create object
object_name, data = self._create_object()
object_name, data = self.create_object(self.container_name)
# get object
resp, body = self.object_client.get_object(self.container_name,
object_name)
@ -701,7 +690,7 @@ class ObjectTest(base.BaseObjectTest):
@test.idempotent_id('0aa1201c-10aa-467a-bee7-63cbdd463152')
def test_get_object_with_if_unmodified_since(self):
# get object with if_unmodified_since
object_name, data = self._create_object()
object_name, data = self.create_object(self.container_name)
time_now = time.time()
http_date = time.ctime(time_now + 86400)
@ -716,7 +705,7 @@ class ObjectTest(base.BaseObjectTest):
@test.idempotent_id('94587078-475f-48f9-a40f-389c246e31cd')
def test_get_object_with_x_newest(self):
# get object with x_newest
object_name, data = self._create_object()
object_name, data = self.create_object(self.container_name)
list_metadata = {'X-Newest': 'true'}
resp, body = self.object_client.get_object(
@ -757,7 +746,7 @@ class ObjectTest(base.BaseObjectTest):
# change the content type of an existing object
# create object
object_name, data = self._create_object()
object_name, _ = self.create_object(self.container_name)
# get the old content type
resp_tmp, _ = self.object_client.list_object_metadata(
self.container_name, object_name)
@ -843,7 +832,8 @@ class ObjectTest(base.BaseObjectTest):
def test_copy_object_with_x_fresh_metadata(self):
# create source object
metadata = {'x-object-meta-src': 'src_value'}
src_object_name, data = self._create_object(metadata)
src_object_name, data = self.create_object(self.container_name,
metadata=metadata)
# copy source object with x_fresh_metadata header
metadata = {'X-Fresh-Metadata': 'true'}
@ -863,7 +853,8 @@ class ObjectTest(base.BaseObjectTest):
def test_copy_object_with_x_object_metakey(self):
# create source object
metadata = {'x-object-meta-src': 'src_value'}
src_obj_name, data = self._create_object(metadata)
src_obj_name, data = self.create_object(self.container_name,
metadata=metadata)
# copy source object to destination with x-object-meta-key
metadata = {'x-object-meta-test': ''}
@ -885,7 +876,8 @@ class ObjectTest(base.BaseObjectTest):
def test_copy_object_with_x_object_meta(self):
# create source object
metadata = {'x-object-meta-src': 'src_value'}
src_obj_name, data = self._create_object(metadata)
src_obj_name, data = self.create_object(self.container_name,
metadata=metadata)
# copy source object to destination with object metadata
metadata = {'x-object-meta-test': 'value'}
@ -951,7 +943,7 @@ class ObjectTest(base.BaseObjectTest):
# Make a conditional request for an object using the If-None-Match
# header, it should get downloaded only if the local file is different,
# otherwise the response code should be 304 Not Modified
object_name, data = self._create_object()
object_name, data = self.create_object(self.container_name)
# local copy is identical, no download
md5 = hashlib.md5(data).hexdigest()
headers = {'If-None-Match': md5}

View File

@ -30,8 +30,7 @@ class ObjectSloTest(base.BaseObjectTest):
def setUp(self):
super(ObjectSloTest, self).setUp()
self.container_name = data_utils.rand_name(name='TestContainer')
self.container_client.create_container(self.container_name)
self.container_name = self.create_container()
self.objects = []
def tearDown(self):

View File

@ -32,9 +32,7 @@ class ObjectTempUrlTest(base.BaseObjectTest):
def resource_setup(cls):
super(ObjectTempUrlTest, cls).resource_setup()
# create a container
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.container_name = cls.create_container()
# update account metadata
cls.key = 'Meta'
@ -44,11 +42,7 @@ class ObjectTempUrlTest(base.BaseObjectTest):
cls.account_client.create_account_metadata(metadata=metadata)
# create an object
cls.object_name = data_utils.rand_name(name='ObjectTemp')
cls.content = data_utils.arbitrary_string(size=len(cls.object_name),
base_text=cls.object_name)
cls.object_client.create_object(cls.container_name,
cls.object_name, cls.content)
cls.object_name, cls.content = cls.create_object(cls.container_name)
@classmethod
def resource_cleanup(cls):
@ -56,7 +50,7 @@ class ObjectTempUrlTest(base.BaseObjectTest):
cls.account_client.delete_account_metadata(
metadata=metadata)
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ObjectTempUrlTest, cls).resource_cleanup()

View File

@ -33,9 +33,7 @@ class ObjectTempUrlNegativeTest(base.BaseObjectTest):
def resource_setup(cls):
super(ObjectTempUrlNegativeTest, cls).resource_setup()
cls.container_name = data_utils.rand_name(name='TestContainer')
cls.container_client.create_container(cls.container_name)
cls.containers = [cls.container_name]
cls.container_name = cls.create_container()
# update account metadata
cls.key = 'Meta'
@ -49,7 +47,7 @@ class ObjectTempUrlNegativeTest(base.BaseObjectTest):
resp, _ = cls.account_client.delete_account_metadata(
metadata=cls.metadata)
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ObjectTempUrlNegativeTest, cls).resource_cleanup()

View File

@ -31,7 +31,7 @@ class ContainerTest(base.BaseObjectTest):
@classmethod
def resource_cleanup(cls):
cls.delete_containers(cls.containers)
cls.delete_containers()
super(ContainerTest, cls).resource_cleanup()
def assertContainer(self, container, count, byte, versioned):