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:
parent
c24869b191
commit
6bdc3ed6d4
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"])
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue