summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/common/test_clientmanager.py104
-rw-r--r--openstackclient/tests/fakes.py17
-rw-r--r--openstackclient/tests/object/v1/lib/test_container.py72
-rw-r--r--openstackclient/tests/object/v1/lib/test_object.py103
-rw-r--r--openstackclient/tests/object/v1/test_container.py16
-rw-r--r--openstackclient/tests/object/v1/test_object.py18
6 files changed, 215 insertions, 115 deletions
diff --git a/openstackclient/tests/common/test_clientmanager.py b/openstackclient/tests/common/test_clientmanager.py
index 6aee711d..5a25fa2c 100644
--- a/openstackclient/tests/common/test_clientmanager.py
+++ b/openstackclient/tests/common/test_clientmanager.py
@@ -14,11 +14,26 @@
#
from openstackclient.common import clientmanager
+from openstackclient.common import restapi
from openstackclient.tests import utils
+AUTH_REF = {'a': 1}
AUTH_TOKEN = "foobar"
AUTH_URL = "http://0.0.0.0"
+USERNAME = "itchy"
+PASSWORD = "scratchy"
+SERVICE_CATALOG = {'sc': '123'}
+
+
+def FakeMakeClient(instance):
+ return FakeClient()
+
+
+class FakeClient(object):
+ auth_ref = AUTH_REF
+ auth_token = AUTH_TOKEN
+ service_catalog = SERVICE_CATALOG
class Container(object):
@@ -28,31 +43,96 @@ class Container(object):
pass
+class TestClientCache(utils.TestCase):
+
+ def test_singleton(self):
+ # NOTE(dtroyer): Verify that the ClientCache descriptor only invokes
+ # the factory one time and always returns the same value after that.
+ c = Container()
+ self.assertEqual(c.attr, c.attr)
+
+
class TestClientManager(utils.TestCase):
def setUp(self):
super(TestClientManager, self).setUp()
- api_version = {"identity": "2.0"}
+ clientmanager.ClientManager.identity = \
+ clientmanager.ClientCache(FakeMakeClient)
- self.client_manager = clientmanager.ClientManager(
+ def test_client_manager_token(self):
+
+ client_manager = clientmanager.ClientManager(
token=AUTH_TOKEN,
url=AUTH_URL,
+ verify=True,
+ )
+
+ self.assertEqual(
+ AUTH_TOKEN,
+ client_manager._token,
+ )
+ self.assertEqual(
+ AUTH_URL,
+ client_manager._url,
+ )
+ self.assertIsInstance(
+ client_manager.session,
+ restapi.RESTApi,
+ )
+ self.assertFalse(client_manager._insecure)
+ self.assertTrue(client_manager._verify)
+
+ def test_client_manager_password(self):
+
+ client_manager = clientmanager.ClientManager(
auth_url=AUTH_URL,
- api_version=api_version,
+ username=USERNAME,
+ password=PASSWORD,
+ verify=False,
)
- def test_singleton(self):
- # NOTE(dtroyer): Verify that the ClientCache descriptor only invokes
- # the factory one time and always returns the same value after that.
- c = Container()
- self.assertEqual(c.attr, c.attr)
+ self.assertEqual(
+ AUTH_URL,
+ client_manager._auth_url,
+ )
+ self.assertEqual(
+ USERNAME,
+ client_manager._username,
+ )
+ self.assertEqual(
+ PASSWORD,
+ client_manager._password,
+ )
+ self.assertIsInstance(
+ client_manager.session,
+ restapi.RESTApi,
+ )
+ self.assertTrue(client_manager._insecure)
+ self.assertFalse(client_manager._verify)
- def test_make_client_identity_default(self):
+ # These need to stick around until the old-style clients are gone
+ self.assertEqual(
+ AUTH_REF,
+ client_manager.auth_ref,
+ )
self.assertEqual(
- self.client_manager.identity.auth_token,
AUTH_TOKEN,
+ client_manager._token,
)
self.assertEqual(
- self.client_manager.identity.management_url,
- AUTH_URL,
+ SERVICE_CATALOG,
+ client_manager._service_catalog,
)
+
+ def test_client_manager_password_verify_ca(self):
+
+ client_manager = clientmanager.ClientManager(
+ auth_url=AUTH_URL,
+ username=USERNAME,
+ password=PASSWORD,
+ verify='cafile',
+ )
+
+ self.assertFalse(client_manager._insecure)
+ self.assertTrue(client_manager._verify)
+ self.assertEqual('cafile', client_manager._cacert)
diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py
index fb27ef94..263640ee 100644
--- a/openstackclient/tests/fakes.py
+++ b/openstackclient/tests/fakes.py
@@ -13,9 +13,12 @@
# under the License.
#
+import json
import six
import sys
+import requests
+
AUTH_TOKEN = "foobar"
AUTH_URL = "http://0.0.0.0"
@@ -42,7 +45,6 @@ class FakeApp(object):
self.stdin = sys.stdin
self.stdout = _stdout or sys.stdout
self.stderr = sys.stderr
- self.restapi = None
class FakeClientManager(object):
@@ -53,6 +55,7 @@ class FakeClientManager(object):
self.object = None
self.volume = None
self.network = None
+ self.session = None
self.auth_ref = None
@@ -78,3 +81,15 @@ class FakeResource(object):
k != 'manager')
info = ", ".join("%s=%s" % (k, getattr(self, k)) for k in reprkeys)
return "<%s %s>" % (self.__class__.__name__, info)
+
+
+class FakeResponse(requests.Response):
+ def __init__(self, headers={}, status_code=200, data=None, encoding=None):
+ super(FakeResponse, self).__init__()
+
+ self.status_code = status_code
+
+ self.headers.update(headers)
+ self._content = json.dumps(data)
+ if not isinstance(self._content, six.binary_type):
+ self._content = self._content.encode()
diff --git a/openstackclient/tests/object/v1/lib/test_container.py b/openstackclient/tests/object/v1/lib/test_container.py
index f7355592..ce70b835 100644
--- a/openstackclient/tests/object/v1/lib/test_container.py
+++ b/openstackclient/tests/object/v1/lib/test_container.py
@@ -18,7 +18,7 @@
import mock
from openstackclient.object.v1.lib import container as lib_container
-from openstackclient.tests.common import test_restapi as restapi
+from openstackclient.tests import fakes
from openstackclient.tests.object.v1 import fakes as object_fakes
@@ -39,156 +39,158 @@ class TestContainer(object_fakes.TestObjectv1):
def setUp(self):
super(TestContainer, self).setUp()
- self.app.restapi = mock.MagicMock()
+ self.app.client_manager.session = mock.MagicMock()
class TestContainerList(TestContainer):
def test_container_list_no_options(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url,
params={
'format': 'json',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_container_list_marker(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
marker='next',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url,
params={
'format': 'json',
'marker': 'next',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_container_list_limit(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
limit=5,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url,
params={
'format': 'json',
'limit': 5,
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_container_list_end_marker(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
end_marker='last',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url,
params={
'format': 'json',
'end_marker': 'last',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_container_list_prefix(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
prefix='foo/',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url,
params={
'format': 'json',
'prefix': 'foo/',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_container_list_full_listing(self):
+ sess = self.app.client_manager.session
def side_effect(*args, **kwargs):
- rv = self.app.restapi.list.return_value
- self.app.restapi.list.return_value = []
- self.app.restapi.list.side_effect = None
+ rv = sess.get().json.return_value
+ sess.get().json.return_value = []
+ sess.get().json.side_effect = None
return rv
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
- self.app.restapi.list.side_effect = side_effect
+ sess.get().json.return_value = resp
+ sess.get().json.side_effect = side_effect
data = lib_container.list_containers(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
full_listing=True,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ sess.get.assert_called_with(
fake_url,
params={
'format': 'json',
'marker': 'is-name',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
class TestContainerShow(TestContainer):
def test_container_show_no_options(self):
resp = {
+ 'X-Container-Meta-Owner': fake_account,
'x-container-object-count': 1,
'x-container-bytes-used': 577,
}
- self.app.restapi.head.return_value = \
- restapi.FakeResponse(headers=resp)
+ self.app.client_manager.session.head.return_value = \
+ fakes.FakeResponse(headers=resp)
data = lib_container.show_container(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
'is-name',
)
# Check expected values
- self.app.restapi.head.assert_called_with(
+ self.app.client_manager.session.head.assert_called_with(
fake_url + '/is-name',
)
@@ -202,4 +204,4 @@ class TestContainerShow(TestContainer):
'sync_to': None,
'sync_key': None,
}
- self.assertEqual(data, data_expected)
+ self.assertEqual(data_expected, data)
diff --git a/openstackclient/tests/object/v1/lib/test_object.py b/openstackclient/tests/object/v1/lib/test_object.py
index 064efb53..f96732b4 100644
--- a/openstackclient/tests/object/v1/lib/test_object.py
+++ b/openstackclient/tests/object/v1/lib/test_object.py
@@ -18,7 +18,7 @@
import mock
from openstackclient.object.v1.lib import object as lib_object
-from openstackclient.tests.common import test_restapi as restapi
+from openstackclient.tests import fakes
from openstackclient.tests.object.v1 import fakes as object_fakes
@@ -40,99 +40,99 @@ class TestObject(object_fakes.TestObjectv1):
def setUp(self):
super(TestObject, self).setUp()
- self.app.restapi = mock.MagicMock()
+ self.app.client_manager.session = mock.MagicMock()
class TestObjectListObjects(TestObject):
def test_list_objects_no_options(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_marker(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
marker='next',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'marker': 'next',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_limit(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
limit=5,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'limit': 5,
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_end_marker(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
end_marker='last',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'end_marker': 'last',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_delimiter(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
delimiter='|',
@@ -142,85 +142,86 @@ class TestObjectListObjects(TestObject):
# NOTE(dtroyer): requests handles the URL encoding and we're
# mocking that so use the otherwise-not-legal
# pipe '|' char in the response.
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'delimiter': '|',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_prefix(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
prefix='foo/',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'prefix': 'foo/',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_path(self):
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
+ self.app.client_manager.session.get().json.return_value = resp
data = lib_object.list_objects(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
path='next',
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ self.app.client_manager.session.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'path': 'next',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
def test_list_objects_full_listing(self):
+ sess = self.app.client_manager.session
def side_effect(*args, **kwargs):
- rv = self.app.restapi.list.return_value
- self.app.restapi.list.return_value = []
- self.app.restapi.list.side_effect = None
+ rv = sess.get().json.return_value
+ sess.get().json.return_value = []
+ sess.get().json.side_effect = None
return rv
resp = [{'name': 'is-name'}]
- self.app.restapi.list.return_value = resp
- self.app.restapi.list.side_effect = side_effect
+ sess.get().json.return_value = resp
+ sess.get().json.side_effect = side_effect
data = lib_object.list_objects(
- self.app.restapi,
+ sess,
fake_url,
fake_container,
full_listing=True,
)
# Check expected values
- self.app.restapi.list.assert_called_with(
+ sess.get.assert_called_with(
fake_url + '/' + fake_container,
params={
'format': 'json',
'marker': 'is-name',
}
)
- self.assertEqual(data, resp)
+ self.assertEqual(resp, data)
class TestObjectShowObjects(TestObject):
@@ -228,19 +229,20 @@ class TestObjectShowObjects(TestObject):
def test_object_show_no_options(self):
resp = {
'content-type': 'text/alpha',
+ 'x-container-meta-owner': fake_account,
}
- self.app.restapi.head.return_value = \
- restapi.FakeResponse(headers=resp)
+ self.app.client_manager.session.head.return_value = \
+ fakes.FakeResponse(headers=resp)
data = lib_object.show_object(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
fake_object,
)
# Check expected values
- self.app.restapi.head.assert_called_with(
+ self.app.client_manager.session.head.assert_called_with(
fake_url + '/%s/%s' % (fake_container, fake_object),
)
@@ -250,7 +252,7 @@ class TestObjectShowObjects(TestObject):
'object': fake_object,
'content-type': 'text/alpha',
}
- self.assertEqual(data, data_expected)
+ self.assertEqual(data_expected, data)
def test_object_show_all_options(self):
resp = {
@@ -258,22 +260,23 @@ class TestObjectShowObjects(TestObject):
'content-length': 577,
'last-modified': '20130101',
'etag': 'qaz',
+ 'x-container-meta-owner': fake_account,
'x-object-manifest': None,
'x-object-meta-wife': 'Wilma',
'x-tra-header': 'yabba-dabba-do',
}
- self.app.restapi.head.return_value = \
- restapi.FakeResponse(headers=resp)
+ self.app.client_manager.session.head.return_value = \
+ fakes.FakeResponse(headers=resp)
data = lib_object.show_object(
- self.app.restapi,
+ self.app.client_manager.session,
fake_url,
fake_container,
fake_object,
)
# Check expected values
- self.app.restapi.head.assert_called_with(
+ self.app.client_manager.session.head.assert_called_with(
fake_url + '/%s/%s' % (fake_container, fake_object),
)
@@ -286,7 +289,7 @@ class TestObjectShowObjects(TestObject):
'last-modified': '20130101',
'etag': 'qaz',
'x-object-manifest': None,
- 'Wife': 'Wilma',
- 'X-Tra-Header': 'yabba-dabba-do',
+ 'wife': 'Wilma',
+ 'x-tra-header': 'yabba-dabba-do',
}
- self.assertEqual(data, data_expected)
+ self.assertEqual(data_expected, data)
diff --git a/openstackclient/tests/object/v1/test_container.py b/openstackclient/tests/object/v1/test_container.py
index 4afb1006..b72c79d6 100644
--- a/openstackclient/tests/object/v1/test_container.py
+++ b/openstackclient/tests/object/v1/test_container.py
@@ -77,7 +77,7 @@ class TestContainerList(TestObject):
kwargs = {
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -113,7 +113,7 @@ class TestContainerList(TestObject):
'prefix': 'bit',
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -148,7 +148,7 @@ class TestContainerList(TestObject):
'marker': object_fakes.container_name,
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -183,7 +183,7 @@ class TestContainerList(TestObject):
'end_marker': object_fakes.container_name_3,
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -218,7 +218,7 @@ class TestContainerList(TestObject):
'limit': 2,
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -252,7 +252,7 @@ class TestContainerList(TestObject):
kwargs = {
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -296,7 +296,7 @@ class TestContainerList(TestObject):
'full_listing': True,
}
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
**kwargs
)
@@ -341,7 +341,7 @@ class TestContainerShow(TestObject):
}
# lib.container.show_container(api, url, container)
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name,
**kwargs
diff --git a/openstackclient/tests/object/v1/test_object.py b/openstackclient/tests/object/v1/test_object.py
index bea0d270..26d07b2c 100644
--- a/openstackclient/tests/object/v1/test_object.py
+++ b/openstackclient/tests/object/v1/test_object.py
@@ -71,7 +71,7 @@ class TestObjectList(TestObject):
columns, data = self.cmd.take_action(parsed_args)
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name,
)
@@ -107,7 +107,7 @@ class TestObjectList(TestObject):
'prefix': 'floppy',
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name_2,
**kwargs
@@ -143,7 +143,7 @@ class TestObjectList(TestObject):
'delimiter': '=',
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name_2,
**kwargs
@@ -179,7 +179,7 @@ class TestObjectList(TestObject):
'marker': object_fakes.object_name_2,
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name_2,
**kwargs
@@ -215,7 +215,7 @@ class TestObjectList(TestObject):
'end_marker': object_fakes.object_name_2,
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name_2,
**kwargs
@@ -251,7 +251,7 @@ class TestObjectList(TestObject):
'limit': 2,
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name_2,
**kwargs
@@ -287,7 +287,7 @@ class TestObjectList(TestObject):
kwargs = {
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name,
**kwargs
@@ -337,7 +337,7 @@ class TestObjectList(TestObject):
'full_listing': True,
}
o_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name,
**kwargs
@@ -384,7 +384,7 @@ class TestObjectShow(TestObject):
}
# lib.container.show_container(api, url, container)
c_mock.assert_called_with(
- self.app.restapi,
+ self.app.client_manager.session,
AUTH_URL,
object_fakes.container_name,
object_fakes.object_name_1,