Fix wrong args for get_container with full listing
In client get_container(), when full_listing is true, the calls back to get_container() pass service_token as a positional arg which maps its value to the full_listing arg. It should use a keyword. Change-Id: Iac2af45df124ff33fcb7fbaf1ba959ef06c96378 Closes-Bug: #1496093
This commit is contained in:
parent
da0aa24f28
commit
67f5468ee4
@ -769,7 +769,7 @@ def get_container(url, token, container, marker=None, limit=None,
|
||||
if full_listing:
|
||||
rv = get_container(url, token, container, marker, limit, prefix,
|
||||
delimiter, end_marker, path, http_conn,
|
||||
service_token, headers=headers)
|
||||
service_token=service_token, headers=headers)
|
||||
listing = rv[1]
|
||||
while listing:
|
||||
if not delimiter:
|
||||
@ -778,7 +778,7 @@ def get_container(url, token, container, marker=None, limit=None,
|
||||
marker = listing[-1].get('name', listing[-1].get('subdir'))
|
||||
listing = get_container(url, token, container, marker, limit,
|
||||
prefix, delimiter, end_marker, path,
|
||||
http_conn, service_token,
|
||||
http_conn, service_token=service_token,
|
||||
headers=headers)[1]
|
||||
if listing:
|
||||
rv[1].extend(listing)
|
||||
|
@ -2382,6 +2382,28 @@ class TestServiceToken(MockHttpTest):
|
||||
actual['full_path'])
|
||||
self.assertEqual(conn.attempts, 1)
|
||||
|
||||
def test_service_token_get_container_full_listing(self):
|
||||
# verify service token is sent with each request for a full listing
|
||||
with mock.patch('swiftclient.client.http_connection',
|
||||
self.fake_http_connection(200, 200)):
|
||||
with mock.patch('swiftclient.client.parse_api_response') as resp:
|
||||
resp.side_effect = ([{"name": "obj1"}], [])
|
||||
conn = self.get_connection()
|
||||
conn.get_container('container1', full_listing=True)
|
||||
self.assertEqual(2, len(self.request_log), self.request_log)
|
||||
expected_urls = iter((
|
||||
'http://storage_url.com/container1?format=json',
|
||||
'http://storage_url.com/container1?format=json&marker=obj1'
|
||||
))
|
||||
for actual in self.iter_request_log():
|
||||
self.assertEqual('GET', actual['method'])
|
||||
actual_hdrs = actual['headers']
|
||||
self.assertEqual('stoken', actual_hdrs.get('X-Service-Token'))
|
||||
self.assertEqual('token', actual_hdrs['X-Auth-Token'])
|
||||
self.assertEqual(next(expected_urls),
|
||||
actual['full_path'])
|
||||
self.assertEqual(conn.attempts, 1)
|
||||
|
||||
def test_service_token_head_container(self):
|
||||
with mock.patch('swiftclient.client.http_connection',
|
||||
self.fake_http_connection(200)):
|
||||
|
Loading…
x
Reference in New Issue
Block a user